Class JavaSpy

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

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

    • JavaSpy

      public JavaSpy()
  • Method Details

    • getFieldValueAsString

      public static String getFieldValueAsString(Object object, String fieldName) throws 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:
      Exception - Bei Fehlern
    • setStaticFieldvalue

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

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

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

      public static void setFieldValue(Object object, String fieldName, Object value) throws 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:
      Exception - Bei Fehlern
    • executeMethod

      public static Object executeMethod(Object object, String methodName, Class[] paramTypes, Object[] paramValues) throws 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:
      Exception - Bei Fehlern