反射Reflection
1. 基本功能
1 public class DemoClass4Reflection { 2 public static void main(String[] args) throws Exception { 3 //TODO 反射 reflection 4 5 User20 user20 = new Child20(); 6 user20.printInfo(); //打印父类user20 7 8 Class<? extends User20> aClass = user20.getClass(); 9 10 //TODO 获取类名称 11 System.out.println(aClass.getName()); //com.zhongyou.demopackage001.Child20 12 System.out.println(aClass.getSimpleName()); //Child20 13 System.out.println(aClass.getPackage()); //package com.zhongyou.demopackage001 14 15 //TODO 获取类的父类 16 Class<?> superclass = aClass.getSuperclass(); 17 System.out.println(superclass.getName()); //com.zhongyou.demopackage001.User20 18 19 //TODO 获取类的接口 20 Class<?>[] interfaces = aClass.getInterfaces(); 21 System.out.println(interfaces.length); //0 22 23 //TODO 获取类的属性 24 Field f1 = aClass.getField("***"); //只能获取public修饰的***的字段属性 25 Field f2 = aClass.getDeclaredField("***"); //不管修饰符,获取***的字段属性 26 Field[] fields = aClass.getFields(); //只能获取public修饰的所有字段属性数组 27 Field[] declaredFields = aClass.getDeclaredFields(); //不管修饰符,获取所有字段属性数组 28 29 //TODO 获取类的方法 30 Method method = aClass.getMethod("***"); //同理上面 31 Method declaredMethod = aClass.getDeclaredMethod("***"); //同理上面 32 Method[] methods = aClass.getMethods(); //同理上面 33 Method[] declaredMethods = aClass.getDeclaredMethods(); //同理上面 34 35 //TODO 构造方法 36 Constructor<? extends User20> constructor = aClass.getConstructor(); 37 Constructor<?>[] constructors = aClass.getConstructors(); 38 39 //TODO 获取权限(修饰符) 40 int modifiers = aClass.getModifiers(); 41 //这样来比较的判断是否是Private修饰符,其他同理 42 boolean aPrivate = Modifier.isPrivate(modifiers); 43 } 44 } 45 46 class User20{ 47 public void printInfo(){ 48 System.out.println("打印父类user20"); 49 } 50 } 51 52 class Child20 extends User20{ 53 public void printInfo2(){ 54 System.out.println("打印子类chiild20"); 55 } 56 }
2.

浙公网安备 33010602011771号