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()+",");
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容