JAVA-反射

反射的定义

能够分析类能力的程序称为反射。

反射的用途

在运行时分析类的能力

在运行时查看对象,例如编写一个toString方法提供所有类使用。

实现通用的数组操作代码

利用Method对象,这个对象很像C++中的函数指针

Class类

在程序运行期间,java运行时系统始终为所有的对象维护一个被称为运行时的类型标识,这个信息跟踪着每一个对象所属的类,虚拟机利用运行时类信息选择相应的方法执行。保存这个信息的类称为Class,Object类中的getClass()方法,就会返回一个Class类型的实例。

解释:也就是说有一个专门的类名字叫做Class,这个类的实例保存的是我们定义的类的信息。

例如:我们有一个类Employee,还有一个这个类的对象实例e

system.out.print(e.getClass().getName());

 
 
  • 1

这样打印出的就是这个类的名字也就是Employee

注意: 一个Class对象表示的是一个类型,而这个类型未必一定是一种类,例如int不是类,但int.class是一个Class类型的对象。

利用反射分析类的能力

在java.lang.reflect包中有三个类Field、Method、Constructor分别用于描述类的域、方法和构造器。

Class类中的getFields getMethods和getConstructors方法将返回类提供的public域,方法和构造器组。

Class类的getDeclareFields getDeclareMethods和getDeclareConstructors方法将返回类中声明的全部域,方法和构造器。

        </div>
					<link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-a47e74522c.css" rel="stylesheet">
            </div>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值