java反射专题二

一丶Class中常用方法详解

1)getFields()

只能获取到运行时类中及其父类中声明为public的属性

2)getDeclaredFields()

获取运行时类本身声明的所有属性

getDeclaredFields()与getFields()的区别:

getDeclaredFiled 仅能获取类本身的属性成员(包括私有、共有、保护) 
getField 仅能获取类(及其父类可以自己测试) public属性成员
因此在获取父类的私有属性时,要通过getSuperclass的之后再通过getDeclaredFiled获取。

3)getMethods()

获取运行时类中及其父类中声明为public的方法

4)getDeclaredMethods()

获取运行时类本身声明的所有方法

5)getSuperclass()

获取运行时类的父类

6)getGenericSuperclass()

获取运行时类带泛型的父类

7)获取运行时类的父类的泛型如下:

       Class clazz = Person.class;
       Type type = clazz.getGenericSuperclass();//获取带泛型的父类
       ParameterizedType param = (ParameterizedType)type;//强转为子类
       Type[] ars = param.getActualTypeArguments();//获得父类的泛型,可能有多个,例如map<k,v>
       System.out.println(((Class)ars[0]).getName()); //Class是Type接口的实现类,所以可以强转,输出父类的泛型

8)getInterfaces()

获取运行时类实现的接口

9)getPackage()

获取运行时类所在的包

10)getAnnotations()

获取运行时类的注解

二丶Field中常用方法详解

1)getModifiers()

获得属性的权限修饰符,返回对应的整数形式

2)getType()

获取属性的类型,返回的是Class对象

3)getName()

获取属性名

三丶Method中常用方法详解

1)getAnnotations()

获取方法上的所有注解

2)getName()

获取方法名

3)getModifiers()

获得方法的权限修饰符,返回对应的整数形式

4)getReturnType()

获取方法的返回值类型,返回的是Class对象

5)getParameterTypes()

获取方法的形参类型,返回的是Class[] 对象

6)getExceptionTypes()

获取方法的抛出异常类型,返回的是Class[] 对象

 

 

 
posted @ 2018-03-14 16:20  迷走神经  阅读(230)  评论(0编辑  收藏  举报