Java反射机制的简介

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。

java.lang.reflect,就是java反射的包,主要包括:ConstructorFieldMemberMethodModifierType等类。

当然主要使用类的只有ConstructorFieldMethodjava.lang.Class

 

Constructor的主要方法:

1.public Constructor<?>[] getConstructors()     

返回类中所有的public构造器集合,默认构造器的下标为0

2.public Constructor<T> getConstructor(Class<?>... parameterTypes)  

返回指定public构造器,参数为构造器参数类型集合

3.public Constructor<?>[] getDeclaredConstructors() 

返回类中所有的构造器,包括私有

4.public Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes)

返回任意指定的构造器

 

Field的主要方法:

1.public Field getDeclaredField(String name) 

获取任意指定名字的成员

2.public Field[] getDeclaredFields()            

获取所有的成员变量

3.public Field getField(String name)          

获取任意public成员变量

4.public Field[] getFields()                         

获取所有的public成员变量

 

Method的主要方法:

1.public Method[] getMethods()   

获取所有的共有方法的集合

2.public Method getMethod(String name,Class<?>... parameterTypes)

获取指定公有方法参数1:方法名参数2:参数类型集合 

3.public Method[] getDeclaredMethods() 

获取所有的方法

4.public Method getDeclaredMethod(String name,Class<?>... parameterTypes)

获取任意指定方法

 

Class的主要方法:

1. public String getName()

一个Class对象描述了一个特定类的特定属性,而这个方法就是返回String形式的该类的简要描述

2. public T newInstance()

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

MyObject x = new MyObject();

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

3. public ClassLoader getClassLoader()

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

4. public native Class<?> getComponentType()

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

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

Class class1 = ints.getClass();

Class class2 = class1.getComponentType();

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

5. public native Class<? super T> getSuperclass()

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

6. public native boolean isArray()

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

 

总结:

java的反射机制就是增加程序的灵活性,避免将程序写死到代码里,现在学习的比较浅,无法去深入了解,等以后慢慢理解吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值