您的位置:首页 > 编程语言 > Java开发

Java反射机制的简介

2016-03-12 23:21 417 查看
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
java.lang.reflect,就是java反射的包,主要包括:Constructor、Field、Member、Method、Modifier、Type等类。

当然主要使用类的只有Constructor、Field、Method和java.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的反射机制就是增加程序的灵活性,避免将程序写死到代码里,现在学习的比较浅,无法去深入了解,等以后慢慢理解吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: