反射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. 

posted @ 2026-03-11 17:35  字节虫  阅读(2)  评论(0)    收藏  举报