Class<? extends Class> clazz = MyClass.class.getClass();
try {
Field field = clazz.getDeclaredField("mInstance");
field.setAccessible(true);
looper = (Looper) field.get(this);
} catch (NoSuchFieldException e1) {
e1.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
}
该字段的声明如下:
private volatile Object mInstance;
我收到
NoSuchFieldException
。 最佳答案
这个
Class<? extends Class> clazz = MyClass.class.getClass();
应该
Class<?> clazz = MyClass.class; // or Class<MyClass>
这就是所谓的类文字。表达式将产生给定类型的
Class
对象。在getClass()
实例上调用Class
将会为Class
而不是Class
返回MyClass
实例。(所有这些都假定在
mInstance
中声明了字段MyClass
。)