-
运行环境:
JDK8 + IntelliJ IDEA 2018.3
-
源码:
package com.ChenJiangT.Demo2; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.Arrays; public class Demo2 { public static void main(String[] args) { /* Field 类:代表类的成员变量(成员变量也称为类的属性)。 Method类:代表类的方法。 Modifier类:代表修饰符。 Constructor 类:代表类的构造方法。*/ Student student = new Student(); Class claStu=student.getClass(); Field cla1=null; try { cla1=claStu.getDeclaredField("name"); } catch (NoSuchFieldException e) { e.printStackTrace(); } System.out.println(cla1); Field[] cla2=claStu.getDeclaredFields(); System.out.println(Arrays.toString(cla2)); System.out.println("********************************************************************************************"); //Method类: Method clazMe=null; try { clazMe=claStu.getMethod("aa",String.class);//查找方法名是getName 并且c } catch (NoSuchMethodException e) { e.printStackTrace(); } System.out.println(clazMe); Method[] clazMe2=claStu.getMethods(); //查找此类的所有公共的方法 包含父类的继承来的方法 System.out.println(Arrays.toString(clazMe2)); Method[] clazMe4 = claStu.getDeclaredMethods();//查找此类的所有的方法 不包含父类的继承来的方法 System.out.println(Arrays.toString(clazMe4)); System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); //Modifier类 getModifiers int claMod=claStu.getModifiers(); System.out.println(claMod); //Constructor 类:代表类的构造方法 getConstructor getConstructors getDeclaredConstructors Constructor claCon1=null; try { claCon1 = claStu.getConstructor(String.class);//查找参数是String 的构造方法 } catch (NoSuchMethodException e) { e.printStackTrace(); } System.out.println(claCon1); Constructor[] claCon2 = claStu.getConstructors();//查找此类的所有的构造方法 System.out.println(Arrays.toString(claCon2)); Constructor[] claCon3 = claStu.getDeclaredConstructors();//查找此类的所有的声明的构造方法 System.out.println(Arrays.toString(claCon3)); } }
-
效果图:
总结:
1).Class类:代表一个类。
2).Field 类:代表类的成员变量(成员变量也称为类的属性)。
3).Method类:代表类的方法。
4).Modifier类:代表修饰符。
5).lConstructor 类:代表类的构造方法。
6).Array类:提供了动态创建数组,以及访问数组的元素的静态方法。(以上文档没有Array的示例 ,明天补充)