二.6 java高级-反射

本文深入探讨了Java反射机制,介绍了如何通过Class对象获取类信息,包括字段、方法和构造器。详细阐述了Class的三种获取方式以及Method类的invoke方法在动态调用方法中的作用。此外,还讨论了通过newInstance方法和Constructor对象创建对象的两种方法,为动态编程提供了基础。

1.概念:以前我们根据类来得到对象,现在我们可以根据对象类得到类。根据Class对象得到类的信息。在运行时动态的获取类的信息,动态调用类的方法

2.获取Class对象的三种方法:(1)对象.getClass();(2)类名.class;(3)Class.forName(“全限定类名”)

3.反射API:Class类:创建Class对象,获取类信息  Field类:获取和设置类中的字段  Method类:获取方法信息或者执行某个方法  Constructor类:获取构造方法 

(1)Class属于java.lang.Class  Field,Method,Constructor都属于java.lang.reflect 包

(2)Class类的方法:

  forName():获得Class对象(对类进行初始化)

  newInstance():创建一个实例(对类进行实例化)

  getFields():获得所有公有的属性对象/getDeclaredFields():获得所有属性对象

  getConstructors():获得所有的公有构造方法/getDeclaredConstructosr():获得该类所有构造方法

  getMethods():获得所有公有的方法/getDeclaredMethods():获得所有方法

(3)Method类的方法:

  invoke(Object obj,Object ... args)  传递object对象及参数调用该对象对应的方法

5.创建对象的两种方法

(1)使用Class对象的newInstance方法创建实例  只能通过这个类的默认构造方法创建对象。要求:对应类有默认的构造方法

(2)使用Class对象获取指定的Constructor对象,再调用Constructor对象的newInstance方法创建实例  这种方法可以选定构造方法创建实例

6.Method的invoke方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值