标签:scribe aaa smi 语句 -keep UNC pre public try
类中类
1. 反射介绍
反射这一概念最早由编程开发人员Smith在1982年提出,主要指应用程序访问、检测、修改自身状态与行为的能力。这一概念的提出立刻吸引了编程界的极大关注,各种研究工作随之展开,随之而来引发编程革命,出现了多种支持反射机制的面向对象语言。
在计算机科学领域,反射是指一类能够自我描述和自控制的应用。在Java编程语言中,反射是一种强有力的工具,是面向抽象编程一种实现方式,它能使代码语句更加灵活,极大提高代码的运行时装配能力。
2. 反射在java中的体现
Java反射说的是在运行状态中,对于任何一个类,我们都能够知道这个类有哪些方法和属性。对于任何一个对象,我们都能够对它的方法和属性进行调用。我们把这种动态获取对象信息和调用对象方法的功能称之为反射机制。案例:
和https://programmer.help/blogs/reflection-and-dynamic-agent-in-mybatis.html
输出效果:
可用getConstructors()返回类的所有公共构造器
输出效果:
源文件的构造器:
2.3 获取类所有的公共public field属性
可用
getFields()返回类的所有公共属性(包括从父类和接口继承过来的)
输出效果:
可用
getMethods()返回类的所有公共方法(包括从父类和接口继承过来的)
输出:
可用
getAnnotations()返回类的所有注解
测试代码:
输出效果:
3. 如何使用通过反射得到构造器、field属性、方法、注解
输出效果:
3.2.1 获取公有方法(参数化和非参数化)
3.2.2 获取私有方法(无参和有参数化)
最终输出:
3.3.1 参数化获取某个具体的field属性
输出:
3.3.2 获取field属性的从属类或接口
输出:
3.3.3 获取field属性的类
只写了核心代码“:
3.3.4 设置和获取公用public field属性的值
只写了核心代码“:
输出:
3.3.5 设置和获取私有private field属性的值
只写了核心代码“:
输出:
不细分了,要不然又写不完了
定义注解
具体类中使用,只写核心代码:
测试代码:
出结果:
总结: 构造器、方法、注解,一句话反射很重要!!!
参考:
0 java反射 : https://baike.baidu.com/item/JAVA%E5%8F%8D%E5%B0%84%E6%9C%BA%E5%88%B6/6015990?fr=aladdin
https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/AnnotatedElement.html
2. Reflection and Dynamic Agent in Mybatis
https://programmer.help/blogs/reflection-and-dynamic-agent-in-mybatis.html
标签:scribe aaa smi 语句 -keep UNC pre public try
原文地址:https://www.cnblogs.com/dongguangming/p/12871424.html