Class<? super T> getSuperclass()
返回表示此 Class 所表示的实体(类、接口、基本类型或 void)的超类的 Class。
这个方法都能得到父类中class字节码对象。就可以得到父类中所有的属性,不管是否被子类继承过来。那么,私有的元素好像不安全了怎么办?
import java.lang.reflect.Method;
class a{
private String name;
public int age;
boolean b;
public a(){}
a(String name){}
public void show(){}
private void a(){}
protected void get() {}
}
class b extends a{
public b(){}
private void run(){}
}
public class PrivateDemo {
public static void main(String[] args) throws Exception {
Class clz=b.class;
Class clzz=clz.getSuperclass();
Method[] m=clzz.getDeclaredMethods();
for (Method mm : m) {
if(mm.getModifiers() ==2){//得到 private 修饰的方法
System.out.println(mm.getName());
}
}
}
} |
|