黑马程序员技术交流社区
标题:
反射这块东西真的很难理解!
[打印本页]
作者:
562181817
时间:
2016-2-28 15:46
标题:
反射这块东西真的很难理解!
求一份详细点的笔记帮助复习 实在是不懂啊!
作者:
友人A
时间:
2016-2-28 15:46
我个人的理解,既然class文件是编译生成的二进制文件。也就是说按照平常,就单独给你一个class文件,你无法知道它原来的java文件里写的什么东西,比如类啊,属性啊,方法啊等等。
而通过反射,我们就可以知道一个class文件编译之前,里面的类名,属性名,方法名。不仅如此,它还能把它加载到内存里,创建class文件中的类的实例,并让你使用起来。
作者:
许鹏飞
时间:
2016-2-29 12:22
反射用于做框架的,如果不做框架基本用不上,至少你只需要明白如何反射构造,字段,方法即可!
作者:
AlphaCC
时间:
2016-3-6 15:33
同求,对于反射的理解不是很透彻
作者:
hard
时间:
2016-3-9 08:21
[code]public class ReflectEx {
public static void main(String[] args)throws Exception {
Class cls = Class.forName("org.dennisit.reflect.entity.User");
Object obj = cls.newInstance(); //创建User的对象
Field f = cls.getDeclaredField("test"); //获取test属性
f.setAccessible(true); //打开私有属性test的访问权限
f.set(obj, "zhangsan"); //为test重新复制
System.out.println(f.get(obj)); //获取obj的test属性值
//根据方法名execute获取方法
java.lang.reflect.Method m = cls.getMethod("execute", String.class, int.class);
m.invoke(obj, "dennisit",23); //调用execute方法
}
}
当我们需要访问私有的属性,方法,字段,函数的时候,我们需要先“强暴它一下,setAccessiable(true)”
作者:
gaoxiang933
时间:
2016-3-11 15:36
知道有种武功叫做斗转星移吗,反射和这个原理一样,你用A去打B,而B又反给了A,代码体现就是A文件生成了B文件,而B文件作用是为了使用A
作者:
朱小龙
时间:
2016-3-15 13:31
http://blog.csdn.net/zy_tiger/article/details/50769535
这个可以么?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2