Package de.bsvrz.sys.funclib.losb.util
Class JavaSpy
- java.lang.Object
-
- de.bsvrz.sys.funclib.losb.util.JavaSpy
-
public 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)
-
-
-
Method Detail
-
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 ObjektfieldName
- 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 ObjektfieldName
- 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 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:
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 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:
java.lang.Exception
- Bei Fehlern
-
-