时间:2021-05-20
1,什么是反射?
java的反射,允许程序在运行时,创建一个对象,获取一个类的所有相关信息等。
2,Class类
要了解反射,就绕不开Class类。
我们平时开发的类,例如ClassA,一般会有一些属性,会有几个构造方法,也会有一些普通方法,我们还可以使用ClassA来创建对象,例如ClassA classA = new ClassA()。
java程序在运行时,其实是很多类的很多个对象之间的协作。jvm如何管理这些类呢?它如何知道各个类的名称,每个类都有哪些属性和哪些方法呢?
jvm会给每个类,创建一个Class类型的对象,来记录各个类的信息,包括类的名称,类有哪些属性,各个属性的类型,类有哪些方法,各个方法的名称参数列表返回值等。我们可以说ClassA是所有ClassA类型的对象的类,同理,我们也可以说,Class是所有Class类型对象的类,而Class类型的对象,也就是其他的所有的类。
3,可以获取类的哪些信息呢?
可以获取类的名称,类的构造函数,类的属性,类的普通方法等。
4,如何使用获取到的类的信息呢?
首先看一下如何使用获取到的类的方法。
jvm提供了Method类,来表示类的方法,我们获取到的一个类的方法,其实就是Method的对象。
从Class获取方法的方式为,调用getMethod()方法,第一个参数为方法名称,后面是待获取的方法的参数的类型列表。
而调用获取到的方法时,也比较特殊,是调用Method的invoke方法,第一个参数为调用哪个对象的该方法,后面是需要给该方法传递的参数列表。
Object obj = MyClass.class.newInstance();Method method = MyClass.class.getMethod("methodName", String.class, String.class);method.invoke(obj, "a", "b");jvm提供了Constructor来表示类的构造方法,提供了Field来表示类的属性,其使用方法与Method的类似。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了Java反射机制原理与用法。分享给大家供大家参考,具体如下:Java反射机制Reflection(反射)是被视为动态语言的关键,反射机制允许程序在
Java反射机制与动态代理,使得Java更加强大,Spring核心概念IoC、AOP就是通过反射机制与动态代理实现的。1Java反射示例:Useruser=ne
Java反射机制一、什么是反射机制简单的来说,反射机制指的是程序在运行时能够获取自身的信息。在java中,只要给定类的名字,那么就可以通过反射机制来获得类的所有
java反射java从很早的版本开始就引入了反射机制,java如今的框架底层大部分也都是使用反射实现的。这篇博客就去探索下java反射使用的方便之处。要说jav
Java反射机制深入理解一.概念 反射就是把Java的各种成分映射成相应的Java类。Class类的构造方法是private,由JVM创建。反射是java语言