获取其他结构
总结于尚硅谷学习视频
所用Person类
OtherTest 类
package com.day0324_2;
import com.day0324_1.Person;
import org.junit.jupiter.api.Test;
import java.lang.annotation.Annotation;
import java.lang.reflect.Constructor;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
public class OtherTest {
@Test
public void test1(){
Class clazz= Person.class;
Constructor[] constructors = clazz.getConstructors();
for (Constructor c :
constructors) {
System.out.println(c);
}
System.out.println();
Constructor[] declaredConstructors = clazz.getDeclaredConstructors();
for (Constructor c :
declaredConstructors) {
System.out.println(c);
}
}
@Test
public void test2(){
Class clazz=Person.class;
Class superclass = clazz.getSuperclass();
System.out.println(superclass);
}
@Test
public void test3(){
Class clazz=Person.class;
Type genericSuperclass = clazz.getGenericSuperclass();
System.out.println(genericSuperclass);
}
@Test
public void test4(){
Class clazz=Person.class;
Type genericSuperclass = clazz.getGenericSuperclass();
ParameterizedType paramType= (ParameterizedType) genericSuperclass;
Type[] actualTypeArguments = paramType.getActualTypeArguments();
System.out.println(((Class)actualTypeArguments[0]).getName());
}
@Test
public void test5(){
Class clazz=Person.class;
Class[] interfaces = clazz.getInterfaces();
for (Class c :
interfaces) {
System.out.println(c);
}
System.out.println();
Class[] interfaces1 = clazz.getSuperclass().getInterfaces();
for (Class c :
interfaces1) {
System.out.println(c);
}
}
@Test
public void test6(){
Class clazz=Person.class;
Package pack = clazz.getPackage();
System.out.println(pack);
}
@Test
public void test7(){
Class clazz=Person.class;
Annotation[] annotations = clazz.getAnnotations();
for (Annotation annos:
annotations) {
System.out.println(annos);
}
}
}