Java的反射机制

Posted jkzr

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java的反射机制相关的知识,希望对你有一定的参考价值。

参考:https://www.cnblogs.com/ysocean/p/6516248.html

1.  什么是Java的反射机制?

   Java反射就是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;并且能改变它的属性。注意:使用反射机制可以打破封装性,导致了java对象的属性不安全。 

2.  反射的好处:可以更灵活的编写代码,代码可以在运行时装配,无需在组件之间进行源代码链接,降低代码的耦合度;还有动态代理的实现等等。

3.  有三种得到class 方式:通过 Class 对象的 forName() 静态方法来获取;直接通过 类名.class 的方式得到,该方法最为安全可靠;通过对象调用 getClass() 方法来获取。

   注意:一个类在JVM 中只会有一个class 实例,所以三种方法得到的class 的地址到最后都是相等的。

4.   常用的API:

   getName():获得类的完整名字;getDeclaredFields():获得类的所有属性。包括private 声明的和继承类;getMethods():获得类的public类型的方法;

//获取父类私有属性值
System.out.println(getFieldValue(c1.newInstance(),"privateField"));

 

以上是关于Java的反射机制的主要内容,如果未能解决你的问题,请参考以下文章

反射机制入门

反射机制入门

java 反射代码片段

深入理解java的反射机制

Java反射机制

Java核心技术梳理-类加载机制与反射