java中反射的使用

反射的使用

1、基本概念

框架:半成品软件。可以在框架的基础上进行软件开发,达到简化代码的目的。
反射:将类的各个部分封装为其他对象进行使用。
反射优点:
1 可以在程序运行过程中操作这些对象。
2 可以解耦、提高程序的可扩展性。

2、获取Class对象的方式

2.1 Class.forName()

功能:将字节码文件加载到内存中,返回Class对象。
格式:Class 变量名 = Class.forName(类路径);
示例:Class person_class1 = Class.forName(“domain.Person”);
用途:多用于配置文件,将类名定义在配置文件中,用于读取文件加载类。
注意事项:该方式存在ClassNotFoundException异常,需要throws或者try catch

2.2 类名.class

功能:通过类名的class属性获取class对象。
格式:Class 变量名 = 类名.class;
示例:Class person_class2 = Person.class;
用途:多用于参数的传递。

2.3 对象名.getClass()

功能:通过对象的getClass()方法获取Class对象。
格式:Class 变量名 = 对象名.getClass();
示例:
Person p = new Person();
Class person_class3 = p.getClass();
用途:多用于对象的获取字节码的方式。

2.4 Class对象.newInstance()

功能:用于创建类对象。
使用格式:Object 对象名 = Class对象.newInstance()
示例:Object o1 = c1.newInstance();
注意事项:调用此方法创建的类对象,构造方法为空参构造方法,如需创建有参数的构造方法,则需要通过Constructor对象创建。

3、通过Class对象获取的Field对象及Field对象的使用

3.1 基本概念

Field对象:用于表示类中成员变量的对象,需要通过Class对象的方法获取。

3.2 获取Field对象的方法

3.2.1、getFields()
功能:获取所有public修饰的成员变量对象。
使用格式:Field[] 变量名 = Class对象名.getFields();
示例:Field[] person_all_public_field = person_class.getFields();

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值