package demo.reflection;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
class A{
private int a;
//public protected均可以
//private 修饰时必须在反射中添加setAccessible(true)
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
}
public class ReflectDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
Class clazz=Class.forName("demo.reflection.A");
A a = new A();
a.setA(3);
for(Field f : clazz.getDeclaredFields())
{
f.setAccessible(true);
System.out.println(f.getName()+"==>"+f.isAccessible()+"=="+f.get(a));
}
Method d = clazz.getDeclaredMethod("getA", null);
d.setAccessible(true);
System.out.println(">>>>>>>>>"+d.invoke(a, null));
Method dd = clazz.getDeclaredMethod("setA", new Class[]{int.class});
dd.invoke(a, new Object[]{1});
System.out.println("======>"+a.getA());
for(Method m : clazz.getMethods())
{
System.out.println(m.getName()+"==>"+m.isAccessible());
}
}catch(Exception ex){
System.out.println(ex);
}
}
}
JAVA反射中的Accessible
最新推荐文章于 2024-12-13 21:03:56 发布
本文详细探讨了Java反射机制的应用,包括如何通过反射获取类的字段、方法,并进行访问和调用,展示了反射在实现代码灵活性和扩展性方面的强大能力。
1557

被折叠的 条评论
为什么被折叠?



