java注解
来源:互联网 发布:flash转换gif软件 编辑:程序博客网 时间:2024/06/05 00:55
主要内容:
JDK内置的基本注解类型(3个)
JDK内置的基本注解类型(3个)
自定义注解类型
对注解进行注解(4个)
利用反射获取注解信息(在反射部分涉及)
Annotation 其实就是代码里的特殊标记,这些标记可以在编译, 类加载, 运行时被读取,并执行相应的处理. 通过使用 Annotation, 程序员可以在不改变原有逻辑的情况下, 在源文件中嵌入一些补充信息.
Annotation 可以像修饰符一样被使用,可用于修饰包,类,构造器, 方法, 成员变量,参数, 局部变量的声明, 这些信息被保存在Annotation 的 “name=value” 对中.
String value();//自定义注解中的变量
}
元注解:修饰注解的注解。
三个基本的 Annotation:
@Override: 限定重写父类方法,该注释只能用于方法
@Deprecated: 用于表示某个程序元素(类,方法等)已过时
@SuppressWarnings:抑制编译器警告
@SuppressWarnings({ "rawtypes", "unused" })//抑制未使用泛型和变量未使用警告。
如何自定义注解(仿照SuppressWarnings):使用 @interface来表示注解,变量后面加()
public @interface MyAnnotation {@SuppressWarnings({ "rawtypes", "unused" })//抑制未使用泛型和变量未使用警告。
如何自定义注解(仿照SuppressWarnings):使用 @interface来表示注解,变量后面加()
String value();//自定义注解中的变量
}
可以在定义 Annotation 的成员变量时为其指定初始值, 指定成员变量的初始值可使用 default 关键字
public@interface MyAnnotation{
String name() default“atguigu";
}
元注解:修饰注解的注解。
@Retention: 只能用于修饰一个 Annotation 定义, 用于指定该Annotation 可以保留多长时间, @Rentention包含一个RetentionPolicy类型的成员变量,使用 @Rentention时必须为该value 成员变量指定值:例如
@Retention(RetentionPolicy.SOURCE)
@Retention(RetentionPolicy.SOURCE)
RetentionPolicy.SOURCE:编译器直接丢弃这种策略的注释
RetentionPolicy.CLASS:编译器将把注释记录在 class文件中. 当运行Java 程序时, JVM不会保留注解。这是默认值
RetentionPolicy.RUNTIME:编译器将把注释记录在class文件中. 当运行Java程序时,JVM会保留注释. 程序可以通过反射获取该注释
@Target: 用于修饰Annotation 定义,用于指定被修饰的 Annotation能用于修饰哪些程序元素. @Target也包含一个名为 value 的成员变量.如:@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})
@Documented: 用于指定被该元Annotation 修饰的 Annotation 类将被 javadoc工具提取成文档.
定义为Documented的注解必须设置Retention值为RUNTIME。
@Inherited: 被它修饰的Annotation 将具有继承性.如果某个类使用了被@Inherited 修饰的 Annotation, 则其子类将自动具有该注解
0 0
- Java注解-自定义注解
- Java注解----自定义注解
- Java注解自定义注解
- Java注解--四种元注解
- Java注解-三种內建注解
- 【Java】【注解】自定义注解
- java注解
- java注解
- java注解
- java 注解
- Java注解
- java 注解
- Java 注解
- Java注解
- java 注解
- JAVA注解
- Java注解
- Java注解
- 创业关闭大潮,它潜伏修炼
- String类型 与 空指针
- spring发送支持HTML邮件
- Delphi,线程与进程的区别
- java读取配置文件(*.propertes)的内容
- java注解
- android——项目结构
- 在html5 中怎么简单的编程,来校验(validate)form中的内容
- 【leetcode】Surrounded Regions
- 图像处理--opencv2 canny边缘检测
- 重载、覆盖和隐藏区别?
- 点击按钮改变背景色
- PHP 面向对象之静态方法和属性;什么时候用静态和用静态的好处
- appium 之页面基本操作储备