Java反射机制

Java反射机制
Object类中的getClass()方法的定义:
public final Class getClass()
此方法返回值是一个Class类。此类是Java反射的源头。


Class类:
使用Class类可以完整地得到一个类中的完整结构。包括类中的方法定义、属性定义等
Class类中的常用方法:
public static Class<?> forName(String className) throws ClassNotFoundException //传入完整的“包.类名称”实例化Class对象


public Constructor[] getConstructors() throws SecurityException //得到一个类中的全部构造方法


public Field[] getDeclaredFields() throws SecurityException //得到本类中单独定义的全部属性


public Field[] getFields() throws SecurityException //取得本类继承而来的全部属性


public Method[] getMethods() throws SecurityException //得到一个类中的全部方法


public Method getMethod(String name,Class...parameterType) throws NoSuchMethodException,SecurityException
//返回一个Method对象,并设置一个方法中的所有参数类型

public Class[] getInterfaces() //返回一个类中所实现的全部接口


public String getName() //得到一个类完整的“包.类名称”


public Package getPackage() //得到一个类的包


public Class getSuperClass() //得到一个类的父类


public Object newInstance() throws InstantiationException,IllegalAccessException()
//根据Class定义的类实例化对象

public Class<?> getComponentType() //返回数组类型的Class


public boolean isArray() //判断此Class是否是数组






在Class类中本身没有定义任何的构造方法,所以如果要使用则首先要通过forName()方法实例化对象。
除此之外,也可以使用“类.class”或"对象.getClass()"方法实例化。




Class类的使用:
1、通过无参构造方法实例化对象
使用Class类的newInstance()方法实例化一个类的对象,但是此类必须是存在一个无参构造方法。
2、调用有参构造方法实例化对象
(1)通过Class类中的getConstructors()取得该类中的所有构造方法
(2)向构造方法中传递一个对象数组,里面包含了要使用的构造方法所需要的参数
(3)通过Constructor实例化对象


Constructor类的常用方法
public int getModifiers() //得到构造方法的修饰符


public String getName() //得到构造方法的名称


public Class<?>[] getParameterTypes() //得到构造方法中参数的类型


public String toString() //返回此构造方法的信息


public T newInstance(Object...initargs) throws InstantiationException,IllegalAccessException,

IllegalArgumentException,InvocationTargetException //向构造方法传递参数,实例化对象


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值