Java 反射知识基本使用

JAVA反射机制

1定义:

主要是指程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。

反射是java中一种强大的工具,能够使我们很方便的创建灵活的代码,这些代码可以再运行时装配,无需在组件之间进行源代码链接。但是反射使用不当会成本很高!

2.作用

A:反编译:.class-->.java

B:通过反射机制访问java对象的属性,方法,构造方法等;

这样好像更容易理解一些,下边我们具体看怎么实现这些功能。

3.获取Class对象有三种方式:

(1)..通过Object类的getClass()方法。例如:

Class c1 = new String("").getClass();

(2).通过Class类的静态方法——forName()来实现:

Class c2 = Class.forName("MyObject");

(3).如果T是一个已定义的类型的话,在java中,它的.class文件名:T.class就代表了 与其匹配的Class对象,例如:

Class c3 = Manager.class;

Class c4 = int.class;

Class c5 = Double[].class;

4.Class类中存在以下几个重要的方法:

a.getName()

一个Class对象描述了一个特定类的特定属性,而这个方法就是返回String形式的该类 的简要描述。由于历史原因,对数组的Class对象

调用该方法会产生奇怪的结果。

b.newInstance()

该方法可以根据某个Class对象产生其对应类的实例。需要强调的是,它调用的是此类 的默认构造方法。例如:

MyObject x = new MyObject();

MyObject y = x.getClass().newInstance();

c.getClassLoader()

返回该Class对象对应的类的类加载器。

d.getComponentType()

该方法针对数组对象的Class对象,可以得到该数组的组成元素所对应对象的Class对 象。例如:

int[] ints = new int[]{1,2,3};

Class class1 = ints.getClass();

Class class2 = class1.getComponentType();

而这里得到的class2对象所对应的就应该是int这个基本类型的Class对象。

e.getSuperClass()

返回某子类所对应的直接父类所对应的Class对象。

f.isArray()

判定此Class对象所对应的是否是一个数组对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值