Class JavaSpy

java.lang.Object
de.bsvrz.sys.funclib.losb.util.JavaSpy

public final class JavaSpy
extends java.lang.Object
Diese statische Klasse erlaubt es, auf private Felder zuzugreifen und private Methoden aufzurufen.
  • Constructor Summary

    Constructors
    Constructor Description
    JavaSpy()  
  • Method Summary

    Modifier and Type Method Description
    static java.lang.Object executeMethod​(java.lang.Object object, java.lang.String methodName, java.lang.Class[] paramTypes, java.lang.Object[] paramValues)
    Ruft eine Methode (auch private) auf dem angegebenen Objekt mit den angegebenen Paramtern auf.
    static java.lang.Object getFieldValue​(java.lang.Object object, java.lang.String fieldName)
    Liefert ein (privates) Feld.
    static java.lang.String getFieldValueAsString​(java.lang.Object object, java.lang.String fieldName)
    Liefert den Wert eines (privaten) Feldes als String.
    static java.lang.Object getStaticFieldvalue​(java.lang.Class c, java.lang.String fieldName)  
    static void setFieldValue​(java.lang.Object object, java.lang.String fieldName, java.lang.Object value)
    Setzt den Wert eines (privaten) Feldes.
    static void setStaticFieldvalue​(java.lang.Class c, java.lang.String fieldName, java.lang.Object value)  

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • JavaSpy

      public JavaSpy()
  • Method Details

    • getFieldValueAsString

      public static java.lang.String getFieldValueAsString​(java.lang.Object object, java.lang.String fieldName) throws java.lang.Exception
      Liefert den Wert eines (privaten) Feldes als String.

      JavaSpy.getFieldvalue(dti, "index"); ist gleichbedeutend mit ... dti.index ... ;

      Die erste Varianten funktioniert aber auch mit privaten Feldern.

      Parameters:
      object - Das Objekt
      fieldName - Der Name des Feldes
      Returns:
      Der Wert des Feldes des angegebenen Objekts als String
      Throws:
      java.lang.Exception - Bei Fehlern
    • setStaticFieldvalue

      public static void setStaticFieldvalue​(java.lang.Class c, java.lang.String fieldName, java.lang.Object value) throws java.lang.Exception
      Throws:
      java.lang.Exception
    • getStaticFieldvalue

      public static java.lang.Object getStaticFieldvalue​(java.lang.Class c, java.lang.String fieldName) throws java.lang.Exception
      Throws:
      java.lang.Exception
    • getFieldValue

      public static java.lang.Object getFieldValue​(java.lang.Object object, java.lang.String fieldName) throws java.lang.Exception
      Liefert ein (privates) Feld.
      Parameters:
      object - Das Objekt
      fieldName - Der Name des Feldes
      Returns:
      Der Wert des Feldes des angegebenen Objekts
      Throws:
      java.lang.Exception - Bei Fehlern
    • setFieldValue

      public static void setFieldValue​(java.lang.Object object, java.lang.String fieldName, java.lang.Object value) throws java.lang.Exception
      Setzt den Wert eines (privaten) Feldes.

      JavaSpy.setFieldvalue(dti, "index", new Integer(123)); ist gleichbedeutend mit dti.index = 123;

      Die erste Varianten funktioniert aber auch mit privaten Feldern.

      Parameters:
      object - Das Objekt
      fieldName - Der Name des Feldes
      value - Der zu setzende Wert
      Throws:
      java.lang.Exception - Bei Fehlern
    • executeMethod

      public static java.lang.Object executeMethod​(java.lang.Object object, java.lang.String methodName, java.lang.Class[] paramTypes, java.lang.Object[] paramValues) throws java.lang.Exception
      Ruft eine Methode (auch private) auf dem angegebenen Objekt mit den angegebenen Paramtern auf. JavaSpy.executeMethod(dti, "getAbsolutPosition", new Class[] {int.class}, new Object[] {0} ); ist gleichbedeutend mit dti.getAbsolutPosition(0);

      Die erste Variante funktioniert aber auch mit privaten Methoden.

      Parameters:
      object - Das Objekt
      methodName - Der Name der Methode, die aufgerufen werden soll, z.B. toString
      paramTypes - Die Signatur als Class-Array. Wenn die Signatur (long, int) ist, muss hier new Class[] {long.class, int.class} stehen
      paramValues - Die zu übergebenden Werte als Object Array
      Returns:
      Der Returnwert der Methode als Object
      Throws:
      java.lang.Exception - Bei Fehlern