0%

注解与反射

注解与反射,学习笔记。

什么是注解?

注解 - Annotation

  • Annotation是从JDK1.5开始引入的新技术。
  • Annotation的作用
    • 不是程序本身,可以对程序作出解释。(这一点和注释comment没什么区别)
    • 可以被其他程序读取(比如编译器)
  • Annotation的格式:
    • 注解是以“@注释名”在代码中存在的,还可以添加一些参数值,例如:@SuppressWarnings(Value=”unchecked”)
  • Annotation在哪里使用?
    • 可以附加在package(包),class(类),method(方法),field(域)等上面,相当于给他们添加了额外的辅助信息,我们可以通过反射机制编程实现对这些元数据的访问

内置注解

常见的内置注解有:@Override:重写@SuppressWarnings:抑制警告@Deprecated:已废弃。代码演示:传送门

元注解

元注解的作用是负责注解其他注解,java定义了4个标志的meta-annotation类型,他们被用来提供对其他annotation类型作说明。代码演示:传送门

  • @Target:描述注解的使用范围(包、类、方法、域。。。)
  • @Retention:表示需要在说明级别保存该注解信息(源码source < 类文件class < 运行时Runtime)
  • @Document:说明该注解被包含在javaDoc中
  • @Inherited:说明子类可以继承分类中的该注解

自定义注解

注解是除了可以使用内置注解外,我们还可以自己写。自定义注解使用@interface,自动继承了java.lang.annotation.Annotation接口。详细介绍点这里:传送门

什么是反射?

Reflection(反射)是java被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象内部属性及方法。详细介绍点这里:传送门

Class对象

在Object类中定义了以下方法,此方法被所有子类继承:public final Class getClass()。以上的方法返回值的类型是一个Class类,此类是Java反射的源头,实际上所谓反射从程序的运行结果来看也很好理解,即:可以通过对象反射求出类的名称。详细介绍点这里:传送门

实现反射机制

有了Class对象,能做什么?能创建运行时(在程序运行时动态创建)类的对象(使用Class对象创建实例)。调用运行时类的指定结构(调用类中的成员属性、成员方法等)。– 实现前边所说的反射机制

利用反射操作注解

利用反射操作注解

学习自B站遇见狂神说

若图片不能正常显示,请在浏览器中打开

欢迎关注我的其它发布渠道