反射-基础方法-java

 1 import net.dsmxx.PersonFk;
 2 import org.apache.poi.ss.formula.functions.T;
 3 
 4 import java.lang.annotation.Annotation;
 5 import java.lang.reflect.Constructor;
 6 import java.lang.reflect.Field;
 7 import java.lang.reflect.Method;
 8 import java.lang.reflect.Modifier;
 9 
10 /**
11  * Created with IDEA
12  * author:foreign
13  * Date:2019/9/29
14  * Time:20:02
15  */
16 public class ReflectionFk {
17     public static void main(String[] args) {
18         //1. 编译期获取对象
19         Class clazz = PersonFk.class;
20         System.out.println("对象:" + clazz);
21         try {
22             //1.1 运行期获取对象
23             Class clazz1 = Class.forName("net.dsmxx.PersonFk");
24             System.out.println("对象:" + clazz1);
25         } catch (ClassNotFoundException e) {
26             e.printStackTrace();
27         }
28         //2. 获取全类名(包含包名)
29         String name = clazz.getName();
30         System.out.println("全类名:" + name);
31         //2.1 获取类型
32         String simpleName = clazz.getSimpleName();
33         System.out.println("类名:" + simpleName);
34         //3 获取类的修饰符
35         int modifiers = clazz.getModifiers();
36         System.out.println("修饰符:" + modifiers);
37         //3.1 判断此类是public、final、native、state、synchronized、transient
38         boolean aPublic = Modifier.isPublic(modifiers);
39         System.out.println("是否public:" + aPublic);
40         boolean aFinal = Modifier.isFinal(modifiers);
41         System.out.println("是否final:" + aFinal);
42         boolean aNative = Modifier.isNative(modifiers);
43         System.out.println("是否aNative: " + aNative);
44         boolean aStatic = Modifier.isStatic(modifiers);
45         System.out.println("是否static:" + aStatic);
46         boolean aSynchronized = Modifier.isSynchronized(modifiers);
47         System.out.println("是否synchronized:" + aSynchronized);
48         boolean aTransient = Modifier.isTransient(modifiers);
49         System.out.println("是否transient:" + aTransient);
50         //3.2 判断此类中的方法是什么修饰
51         Method[] methods = clazz.getMethods();
52         for (Method method : methods) {
53             int modifiers1 = method.getModifiers();
54             boolean aPublic1 = Modifier.isPrivate(modifiers1);
55             System.out.println("方法是否private:" + aPublic1);
56         }
57         //4 获取包信息
58         Package aPackage = clazz.getPackage();
59         System.out.println("包名:" + aPackage);
60         //5 获取父类
61         Class superclass = clazz.getSuperclass();
62         System.out.println("父类:" + superclass);
63         //6 获取当前类实现的接口,不包括父类实现的接口
64         Class[] interfaces = clazz.getInterfaces();
65         for (Class inter : interfaces) {
66             System.out.println("接口:" + inter);
67         }
68         //7 获取构造器
69         Constructor[] constructors = clazz.getConstructors();
70         for (Constructor con : constructors) {
71             System.out.println("构造器:" + con);
72         }
73         //8 获取方法
74         Method[] methods1 = clazz.getMethods();
75         for (Method method : methods1) {
76             System.out.println("方法:" + method);
77         }
78         //9 获取public变量
79         Field[] fields = clazz.getFields();
80         for (Field field : fields) {
81             System.out.println("变量:" + field);
82         }
83         //10 获取注解
84         Annotation[] annotations = clazz.getAnnotations();
85         for (Annotation annotation : annotations) {
86             System.out.println("注解:" + annotation);
87         }
88     }
89 }

 

posted @ 2019-09-29 20:32  青稞123  阅读(162)  评论(0编辑  收藏  举报