Class 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)  
      • Methods inherited from class java.lang.Object

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

      • JavaSpy

        public JavaSpy()
    • 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 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