new_study
2019-03-04 13:38
我一直在想,反射有什么用,比如
Method m = c.getMethod("print", int.class,int.class );
//用方法反操作
m.invoke(a1,10,20);
我直接a1.print不是更快???
反射的作用在于
1. 动态绑定:传统的通过 new 关键字显式创建对象的静态绑定,其字段和方法的访问和调用方式在编译期就已经确定了,无法改变,而动态绑定则提供了你能够动态修改的机会
2. 通过将基于硬编码的符号引用转换为基于字符串标识的动态解析,提供更大的编码灵活性。不再是通过编译时的字节码依赖关系,而是通过各种字符串的解析。比如,forName方法,根据字符串去动态加载类,newInstance 根据字符串动态实例化类等。这使得,如果配合 config 文件,将会更加灵活地访问类成员。再配合注解的协同作用,springboot 框架诞生了。
关于这点我觉得老师在第一节讲的内容就能够体现反射的好处
可以动态加入代码,一个对象的方法未完全实现,也可以调用该方法(部分)
学习框架和别人封装的对象你应该就懂了,多敲代码
反射可以绕过编译阶段
反射——Java高级开发必须懂的
151818 学习 · 343 问题
相似问题