0%

Java 反射

在多级类继承中, 如何找到方法是在哪个类实现的?

currentObject 是ContextWrapper 的子类的对象, mBase是定义在 currentObject某一个父类的字段,
mBase中的某个方法getSharedPerences()是定义在某个父类中的抽象方法,
如何确定该方法是在哪个父类中实现的?

1
2
3
4
5
6
7
try{
Field field = ContextWrapper.class.getDeclaredField("mBase");
field.setAccessible(true);
Object object = field.get(currentObject);
Log.i(TAG,"the real implement class is " + filed.getClass().getName());
}catch(Exception e){
}

getSharedPerences()方法一定定义在mBase类中. 妙哉!
获得mBase对象的类名就是该方法的实现类.