获取运行时类实现的接口
@Test
public void test1(){
Class clazz = Person.class;
Class[] interfaces = clazz.getInterfaces();
for(Class c:interfaces){
System.out.println(c);//注意Person类继承了Creature类,Creature类还实现了接口,但拿不到
}
System.out.println();
//获取运行时类的父类实现的接口
Class superclass = clazz.getSuperclass();
Class[] interfaces1 = superclass.getInterfaces();
for(Class c:interfaces1){
System.out.println(c);//interface java.io.Serializable
}
}
获取运行时类所在的包
@Test
public void test1(){
Class clazz = Person.class;
Package pack = clazz.getPackage();
System.out.println(pack);//package test
}
获取运行时类声明的注解
@Test
public void test1(){
Class clazz = Person.class;
Annotation[] annotations = clazz.getAnnotations();
for(Annotation a:annotations){
System.out.println(a);//@test.MyAnnotation(value=hi)
}
}
通过反射读取注解的内容,通过内容判断要做什么