java 反射:
一个类(或Interface或Annotation或Enum或Arrays或修饰符等等这些东西)被加载后,jvm会创建一个对应该类(或Interface或Annotation或Enum或Arrays或修饰符等等这些东西)的Class对象,类(或Interface或Annotation或Enum或Arrays或修饰符等等这些东西)的整个结构信息会放到这个Class对象中。
通过这个Class对象,可以看对应类(或Interface或Annotation或Enum或Arrays或修饰符等等这些东西)的所有类(或Interface或Annotation或Enum或Arrays或修饰符等等这些东西)信息。
一个类(或Interface或Annotation)只被加载一次,这个类只对应一个Class对象。
2.在程序运行中,
在java 程序中(Class或Interface或Annotation或Enum或Arrays或修饰符等等这些 东 西) 都可以在加载后获得一个Class对象。
获得Class对象的三种方式:
.getClass() //对象调用
.class //类名调用
Class.form() //类全限定名
使用反射加载一个类后可以:
Class clazz=Class.forName("com.alces.rest.service.impl.ContentServiceImpl");
1.获得动态加载类中的注解对象
2.获得动态加载类中的方法对象
3.获得动态加载类中的属性对象
4.获得该类的构造函数对象
5.通过构造函数获得该类的实例
6.动态调用该类中的方法。
动态调用:
1.通过传入对象、类名、类全限定名。来获得一个class对象
2.再通过传入方法名来动态调用方法。 //调用指定方法名的方法。