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

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

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

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

 

@表示这是一个注解

 

@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

 

Annotations:注解的更多相关文章

  1. Android注解使用之使用Support Annotations注解优化代码

    前言: 前面学习总结了Java注解的使用,博客地址详见Java学习之注解Annotation实现原理,从本质上了解到什么注解,以及注解怎么使用?不要看见使用注解就想到反射会影响性能之类,今天我们就来学 ...

  2. Hibernate Annotations 注解

    Hibernate Annotations 注解 对于org.hibernate.annotations与org.hibernate.persistence,它的注释比如Columns,可是不知道怎么 ...

  3. Android Annotations 注解例子

    1.AndroidAnnotations官网: http://androidannotations.org/ (也许你需要FQ) 2.eclipse中使用androidannotations的配置方法 ...

  4. jackson annotations注解详解

    jackson中常用到的注解 猛击下面的连接地址 http://blog.csdn.net/sdyy321/article/details/40298081

  5. jackson annotations注解详解 (zhuan)

    http://blog.csdn.net/sdyy321/article/details/40298081 ************************************** 官方WIKI: ...

  6. ibatis annotations 注解方式返回刚插入的自增长主键ID的值

    mybatis提供了注解方式编写sql,省去了配置并编写xml mapper文件的麻烦,今天遇到了获取自增长主键返回值的问题,发现相关问答比较少,还好最后还是圆满解决了,现把重点记录一下,解决问题的关 ...

  7. ibatis annotations 注解方式返回刚插入的自增长主键ID的值--转

    原文地址:http://www.blogs8.cn/posts/WWpt35l mybatis提供了注解方式编写sql,省去了配置并编写xml mapper文件的麻烦,今天遇到了获取自增长主键返回值的 ...

  8. ABAP CDS - Annotations 注解

    Syntax ... annotation[.annotation1[.annotation2]][:value]  ... Effect Annotation that can be specifi ...

  9. Android Studio配置Android Annotations框架详解--说说那些坑

    我们开发过程中都需要写些findViewByid.serOnclickListener等类似的代码,虽然不费事,但是一个项目下来,工作量还是很大的.为了节省工作量,运生了很多对应的注解框架.网上的博客 ...

随机推荐

  1. 百度网盘,前几天刚从百度云改名过来,百度云这个名字给之前的百度开放云(同步盘用户比较小众)good

    作者:黑郁金香链接:http://www.zhihu.com/question/51803053/answer/127562835来源:知乎著作权归作者所有,转载请联系作者获得授权. 在8月网盘大面积 ...

  2. WP之Sql Server CE数据库

    如何在WP8中进行数据存储,你首先想到应该是独立存储,但是独立存储似乎存储文件更方便,如果我们希望像处理对象的形式,该怎么办呢,答案就是Sql Server CE. Sql Server CE并不是新 ...

  3. 开源调度框架Quartz最佳实践

    开源调度框架Quartz最佳实践 Quartz是一个Java调度框架,当前的最新版本为2.2.1. 以Quartz 2.2.1版为例,Quartz最佳实践(用于生产系统)总结如下: 1.跳过更新检查Q ...

  4. create user 'root'@'localhost' identified by 。。。

  5. UML与数据流图

    Ref: <数​据​库​设​计​理​论​及​应​用​(​3​)​—​—​需​求​分​析​及​数​据>http://wenku.baidu.com/link?url=hbhJFytMKT8A ...

  6. UVa 1453 - Squares 旋转卡壳求凸包直径

    旋转卡壳求凸包直径. 参考:http://www.cppblog.com/staryjy/archive/2010/09/25/101412.html #include <cstdio> ...

  7. PHP Redis 普通封装类

    class redisInit { private $redis; //redis对象 /** * 初始化Redis * $config = array( * 'server' => '127. ...

  8. java知识积累——单元测试和JUnit(二)

    首先来复习一下几个重要知识点,然后接着进行一些介绍.在上一篇文章中,我曾经贴过下面这张图片: 在Which method stubs would you like to create?这里,现在结合4 ...

  9. Android动画 三种动画

    Android可以使用三种动画 Frame Animation-帧动画 ,就像GIF图片,通过一系列Drawable依次显示来模拟动画的效果 Tween Animation-补间动画,给出两个关键帧, ...

  10. ie下jquery ajax 80020101错误的解决方法

    <script language="javascript">    <!--    function checkAll(name,isCheck){       ...