标签:tde str 信息 div master 生成 反射机制 reflect ocs
在Java中反射机制是指在运行状态中,对于任意一个类都能够知道这个类所有的属性和方法;并且对于任意一个对象,都能够调用它的任意一个方法。这种动态获取信息以及动态调用对象方法的功能成为Java语言的反射机制。
静态编译和动态编译:
静态编译:在编译时确定类型,绑定对象
动态编译:在运行时确定类型,绑定对象
Java反射API
反射API用来生成JVM中的类、接口或者对象的信息
反射的使用步骤(获取class对象,调用对象方法)
获取class对象的三种方法
调用某个对象的getClass()方法
Person p = new Person();
Class clazz = p.getClass();
调用某个类的class属性来获取该类对应的class对象
Class clazz = Person.class;
使用Class类中的forName()静态方法(最安全/性能最好)
Class clazz = Class.forName("类的全路径"); (最常用)
创建对象的两种方法
//获取Person类的Class对象 Class clazz = Class.forName("reflection.Person"); //使用.newInstance方法创建对象 Person p = (Person)clazz.newInstance(); //获取构造方法并创建对象 Constructor c = clazz.getDeclaredConstructor(String.class,String.class,Int.class); //创建对象并设置属性 Person p1 = (Person)c.newInstnce("李四","男",20);
反射的优缺点
优点:运行期类型的判断,动态加载类,提高代码灵活性
缺点:1,性能瓶颈,反射相当于一些列解释操作,通知JVM要做的事情,性能比直接Java代码要慢的多。2,安全问题,会增加安全隐患
参考文档:https://zhuanlan.zhihu.com/p/80519709
https://github.com/Snailclimb/JavaGuide/blob/master/docs/java/basic/reflection.md
标签:tde str 信息 div master 生成 反射机制 reflect ocs
原文地址:https://www.cnblogs.com/codingLiu/p/12748803.html