Package de.bsvrz.sys.funclib.losb.util
Class JavaSpy
java.lang.Object
de.bsvrz.sys.funclib.losb.util.JavaSpy
Diese statische Klasse erlaubt es, auf private Felder zuzugreifen und private Methoden aufzurufen.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic Object
executeMethod
(Object object, String methodName, Class[] paramTypes, Object[] paramValues) Ruft eine Methode (auch private) auf dem angegebenen Objekt mit den angegebenen Paramtern auf.static Object
getFieldValue
(Object object, String fieldName) Liefert ein (privates) Feld.static String
getFieldValueAsString
(Object object, String fieldName) Liefert den Wert eines (privaten) Feldes als String.static Object
getStaticFieldvalue
(Class c, String fieldName) static void
setFieldValue
(Object object, String fieldName, Object value) Setzt den Wert eines (privaten) Feldes.static void
setStaticFieldvalue
(Class c, String fieldName, Object value)
-
Constructor Details
-
JavaSpy
public JavaSpy()
-
-
Method Details
-
getFieldValueAsString
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 ObjektfieldName
- Der Name des Feldes- Returns:
- Der Wert des Feldes des angegebenen Objekts als String
- Throws:
Exception
- Bei Fehlern
-
setStaticFieldvalue
- Throws:
Exception
-
getStaticFieldvalue
- Throws:
Exception
-
getFieldValue
Liefert ein (privates) Feld.- Parameters:
object
- Das ObjektfieldName
- Der Name des Feldes- Returns:
- Der Wert des Feldes des angegebenen Objekts
- Throws:
Exception
- Bei Fehlern
-
setFieldValue
Setzt den Wert eines (privaten) Feldes.JavaSpy.setFieldvalue(dti, "index", new Integer(123));
ist gleichbedeutend mitdti.index = 123;
Die erste Varianten funktioniert aber auch mit privaten Feldern.
- Parameters:
object
- Das ObjektfieldName
- Der Name des Feldesvalue
- 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 mitdti.getAbsolutPosition(0);
Die erste Variante funktioniert aber auch mit privaten Methoden.
- Parameters:
object
- Das ObjektmethodName
- Der Name der Methode, die aufgerufen werden soll, z.B.toString
paramTypes
- Die Signatur als Class-Array. Wenn die Signatur(long, int)
ist, muss hiernew Class[] {long.class, int.class}
stehenparamValues
- Die zu übergebenden Werte als Object Array- Returns:
- Der Returnwert der Methode als Object
- Throws:
Exception
- Bei Fehlern
-