本笔记来源于:尚硅谷Java零基础全套视频教程(宋红康2023版,java入门自学必备)
b站视频
我们可以通过反射,获取对应的运行时类中所有的属性、方法、构造器、父类、接口、父类的泛型、包、注解、异常等。。。。
典型代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
| @Test public void test1(){
Class clazz = Person.class;
Field[] fields = clazz.getFields(); for(Field f : fields){ System.out.println(f); } System.out.println();
Field[] declaredFields = clazz.getDeclaredFields(); for(Field f : declaredFields){ System.out.println(f); } }
@Test public void test1(){
Class clazz = Person.class;
Method[] methods = clazz.getMethods(); for(Method m : methods){ System.out.println(m); } System.out.println(); Method[] declaredMethods = clazz.getDeclaredMethods(); for(Method m : declaredMethods){ System.out.println(m); } }
@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); } }
|