注解

   日期:2020-10-14     浏览:105    评论:0    
核心提示:注解注解语法public @interface TestAnnotation { }//创建一个名为TestAnnotation的注解注解的定义@TestAnnotation //注释通过 @interface 关键字进行定义public class Test { }原注解元注解也是一张标签,但是它是一张特殊的标签,它的作用和目 的就是给其他普通的标签进行解释说明的元标签有 :@Retention@Documented@Target@Inherited@Repeatable

注解
注解语法

public @interface TestAnnotation {
 }//创建一个名为TestAnnotation的注解

注解的定义

@TestAnnotation //注释通过 @interface 关键字进行定义
public class Test { 
}

原注解
元注解也是一张标签,但是它是一张特殊的标签,它的作用和目 的就是给其他普通的标签进行解释说明的
元标签有 :
@Retention
@Documented
@Target
@Inherited
@Repeatable五种

@Retention
应用到一个注解上时,它解释说明了这个注解的存活时间
取值:

@Retention(RetentionPolicy.SOURCE )//注解只在源码阶段保留,编译时丢弃
(RetentionPolicy.CLASS )//注解只保留到.class阶段,但jvm加载class时丢弃
@Retention(RetentionPolicy.RUNTIME )//注解不仅保留到class编译文件种,jvm加载class仍保留

生命周期:SOURCE<CLASS <RUNTIME

//例子
@Retention(RetentionPolicy.RUNTIME)
 public @interface TestAnnotation { 
 }

@Documente
作用是能够将注解种的元素包含到javadoc中去
导出javadoc防止中文乱码需要加上

-encoding UTF-8 -charset UTF-8

@Targe
是指定注解运用的地方
取值:

@Target(ElementType.ANNOTATION_TYPE)//给一个注解进行注
@Target(ElementType.CONSTRUCTOR )//给构造方法进行注解
@Target(ElementType.FIELD )//给属性进行注解 
@Target(ElementType.LOCAL_VARIABLE)//给局部变量进行注解 
@Target(ElementType.METHOD)//给方法进行注解 
@Target(ElementType.PACKAGE )//给一个包进行注解 
@Target(ElementType.PARAMETER )//给一个方法内的参数进行注
@Target(ElementType.TYPE )//给一个类型进行注解,比如类、接口、枚举
//例子
@Target(ElementType.CONSTRUCTOR)
 public @interface TestAnnotation { 
 }

@Inherited
继承,不是注解继承,使用了Inherited之后子类继承父类的时候,如果子类没有注解,那么父类的注解被继承

@Repeatable
可重复 Java 1.8 才加进来的

@interface Persons {   
 Person[]  value(); 
 } 
 @Repeatable(Persons.class) 
 @interface Person{    
 String role default ""; 
 } 
 @Person(role="artist")
  @Person(role="coder")
   @Person(role="PM") 
   public class SuperMan{
    }

注解的属性
注解的属性也叫做成员变量。注解只有成员变量,没有方法

Java 预置的注解
@Deprecated 用来标记过时的元素

@Override 提示子类要复写父类中被 @Override 修饰的方法

@SuppressWarnings阻止警告的意思
取值:

@SuppressWarnings({"unused"})//不做警告检查

@SafeVarargs参数安全类型注解
目的是提醒开发者不要用参数做一些不安全的操作,它的存在会阻止编译器产生 unchecked 这样的警告。在 Java 1.7 的版本中加入的。

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服