java反射深入浅出+笔记+day0802

Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法;生成动态代理。

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的以及动态调用对象的方法的功能称为java语言的反射机制。

那么问题来了,对于运行时到底是什么呢?

我的都知道,要执行一个java程序,必须先将这个java程序先编译,在运行,编译用到了javac xxx.java  ,运行的命令行指令是java xxx,此处的运行就是java xxx。

在简单的说,就是你编译的时候不需要事先确定该类的类型,运行时才确定该类的类型。

问题来了,你得了解一下几个概念

1、Person p = new Person(),这个方式是在编译的时候便确定的该对象的类型

2、对象的类类型,通俗的将就是万物接对象,类也是一种对象,他的类是Class类。

例如Class clz = User.Class,那么clz便叫做对象的类类型,

扫描二维码关注公众号,回复: 11528927 查看本文章

3、问题来了,如何获取类的类类型呢?有三种方式

1、类名.class
2、对象.getClass()
3、Class.forName()

4、通过最上边的概念可知,我们获取到了该类的类型型后便可以知道该类的所有信息,例如方法,属性等。

那么如何获取呢?

Class clz = Class.forName(类的全名称)

T  t = clz.getInstance();//通过类的类类型调用类的无参构造方法

clz.getDeclaredFields();//获取该类的参数信息

clz.getDeclaredMethods();//获取类的所有方法信息

参考信息:https://baike.baidu.com/item/JAVA%E5%8F%8D%E5%B0%84%E6%9C%BA%E5%88%B6

2、https://blog.csdn.net/zhsihui429/article/details/86620830#2%E3%80%81%E4%BB%80%E4%B9%88%E6%98%AF%E5%8F%8D%E5%B0%84

猜你喜欢

转载自blog.csdn.net/weixin_42333573/article/details/107741722