`

Annotations:注解

 
阅读更多

注解,作为元数据的一种形式,虽不是程序的一部分,却有以下作用:

可以让编译器跳过某些检测

某些工具可以根据注解信息生成文档等

某些注解可以在运行时检查

 

@表示这是一个注解

 

@Override

 

 

 注解可以包含元素,可以有值

 

@Author(
   name = "Benjamin Franklin",
   date = "3/27/2003"
)
 

 

只有一个元素时可以没有名字

 

@SuppressWarnings("unchecked")
 

 

 

没有元素时可以没有括号

 

@Author(name = "Jane Doe")
@EBook

 

注解也可以有多个,规范做法是每个都单独一行

 

在JDK8以后,可以有重复注解:

 

@Author(name = "Jane Doe")
@Author(name = "John Smith")
 

 

 

注解的类型在java.lang 或java.lang.annotation

也可以自定义自己的注解类型

 

注解通常用在定义的地方,类,字段,方法等

在JDK8以后,注解也能作为类型,称为type annotation

 

以前,注解是来替代注释的

首先要定义

 

import java.lang.annotation.*;
@Documented  //前面加这个可以让生成的javadoc包括这个注解信息
@interface ClassPreamble { //前面是@interface , 其实注解都是接口,而且定义时也类似接口
String author(); //元素定义 
String date(); int currentRevision() default 1; //默认值 
String lastModified() default "N/A"; 
String lastModifiedBy() default "N/A"; 
// Note use of array 
String[] reviewers();}

 

 

定义以后就可以使用了

@ClassPreamble (  //直接@注解类型
   author = "John Doe",
   date = "3/17/2002",
   currentRevision = 6,
   lastModified = "4/12/2004",
   lastModifiedBy = "Jane Doe",
   // Note array notation
   reviewers = {"Alice", "Bob", "Cindy"}
)
public class Generation3List extends Generation2List {
// class code goes here
}
 

java.lang中的也就是预定义注解

@Deprecated是已过期,编译器会警告

@Override表示这是个覆盖的方法,其实不写也行,通常是个强制性提示,覆盖的不对会报错

 

@SuppressWarnings("deprecation")让编译器忽略某个警告

编译警告通常有两种,deprecationunchecked,unchecked会提示那些在泛型发明以前写的代码

@SuppressWarnings({"unchecked", "deprecation"})//可以写多个

 

@SafeVarargs@FunctionalInterface ( 新)

 

有的注解是用于其他注解的,这称为元注解,通常在java.lang.annotation

@Retention

@Documented

@Target

@Inherited

@Repeatable

 

分享到:
评论

相关推荐

    proguard-annotations:Proguard批注AAR

    注解 批注是怎么做的? 也可以看看 从官方导入 参考 测试 $ /gradelw clean assembleRelease $ cd proguard-annotations-app/build/outputs/apk $ unzip proguard-annotations-app-release-unsigned.apk $ dex2...

    jackson 完整Jar包

    jackson-annotations:注解包 jackson-databind:数据绑定包 jackson-databind需要引用另外两个包,所以如果项目中需要jackson-databind,则只需要加入它的dependency就行了,其他两个会自动引入: <dependency&...

    jackson-annotations-2.2.3.jar.zip

    "jackson-annotations-2.2.3.jar.zip" 是一个包含Jackson注解库的压缩文件,版本为2.2.3。这个库是Jackson框架的重要组成部分,主要用于在Java对象和JSON数据之间进行序列化和反序列化。 **Jackson注解** Jackson...

    jackson jar包 官方绿色完整版

    jackson-annotations:注解包 jackson-databind:数据绑定包 jackson-databind需要引用另外两个包,所以如果项目中需要jackson-databind,则只需要加入它的dependency就行了,其他两个会自动引入: <dependency&...

    jackson 完整Jar包-82年的毒豆芽

    jackson-annotations:注解包 jackson-databind:数据绑定包 jackson-databind需要引用另外两个包,所以如果项目中需要jackson-databind,则只需要加入它的dependency就行了,其他两个会自动引入: <dependency&...

    jackson jar包 官方绿色完整版-82年的毒豆芽

    jackson-annotations:注解包 jackson-databind:数据绑定包 jackson-databind需要引用另外两个包,所以如果项目中需要jackson-databind,则只需要加入它的dependency就行了,其他两个会自动引入: <dependency&...

    jackson-annotations-2.2.3.jar(Jackson解析需引入的包)

    1. **Jackson-Annotations**:这是一个注解模块,提供了各种注解,如`@JsonProperty`、`@JsonInclude`、`@JsonIgnore`等,开发者可以使用这些注解来定制序列化和反序列化的行为。例如,`@JsonProperty`用于指定哪些...

    jackson.jar包.rar

    官网:http://wiki.fasterxml.com/JacksonHome 三个主要的模块: jackson-co re:核心包 jackson-annotations:注解包 jackson-databind:数据绑定包 jackson-databind需要引用另外两个包,所以如果项目中需要...

Global site tag (gtag.js) - Google Analytics