Class Reflector

java.lang.Object
org.robolectric.util.reflector.Reflector

public class Reflector extends Object
Provides accessor objects for efficiently calling otherwise inaccessible (non-public) methods.

This is orders of magnitude faster than using reflection directly.

For example, to access a private method on some class Foo, declare an accessor interface:

 class Foo {
   private String getName() { ... }
 }

 @ForType(Foo.class)
 interface _Foo_ {
   String getName();
 }

 reflector(_Foo_.class, new Foo()).getName();
 
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static <T> T
    reflector(Class<T> iClass)
    Returns an object which provides accessors for invoking otherwise inaccessible static methods and fields.
    static <T> T
    reflector(Class<T> iClass, Object target)
    Returns an object which provides accessors for invoking otherwise inaccessible methods and fields.

    Methods inherited from class java.lang.Object

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

    • Reflector

      public Reflector()
  • Method Details

    • reflector

      public static <T> T reflector(Class<T> iClass)
      Returns an object which provides accessors for invoking otherwise inaccessible static methods and fields.
      Parameters:
      iClass - an interface with methods matching private methods on the target
    • reflector

      public static <T> T reflector(Class<T> iClass, Object target)
      Returns an object which provides accessors for invoking otherwise inaccessible methods and fields.
      Parameters:
      iClass - an interface with methods matching private methods on the target
      target - the target object