java 反射-类

使用java反射机制可以在运行时期(runtime)检查java类的信息,通过获取类的信息你可以获取以下信息:
1.class对象
2.类名
3.修饰符
4.包信息
5.父类
6.实现的接口
7.构造器
8.方法
9.变量
10.注解

获取class对象

Class myObject=MyObject.class

或者使用类名

String className="";//全类名
Class clazz=Class.forName(className);

或者

Class c=new Class();
Class clazz=c.getClass();

获取内部类,或者接口(public)

Class[] classes=clazz.getClasses();
System.out.println(Array.toString(classes));

获取所有内部类或者接口

Class[] c =Test.class.getDeclaredClasses();
System.out.println(Arrays.toString(c));

获取修饰符

Class aClass=...;
int modifiers=aClass.getModifiers();

使用Modifier类中的方法来检查修饰符类型

包信息

Class aClass=...
Package package=aClass.getPackage();

父类

Class superclass=aClass.getSuperclass();

实现的接口

Class[] interfaces=aClass.getInterfaces();

构造器

Constructor[] constructor=aClass.getConstructors();

方法

获取所有公有方法

Method[] method=aClass.getMethods();

获取调用的方法所在的类

Method m=...;
m.getDeclaringClass().getCanonicalName();

变量

获取成员变量

Field[] method=aClass.getFields();

注解

Annotation[] annotations=aClass.getAnnotations();

获取类型参数

TypeVariable[] typeParameters = Class.forName("java.util.HashMap").getTypeParameters();
for(TypeVariable t : typeParameters)
System.out.print(t.getName()+",");

你可能感兴趣的:(java 反射-类)