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

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

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

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

 

@表示这是一个注解

 

@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. 58. Length of Last Word

    题目: Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return t ...

  2. Tomcat目录介绍以及运行时寻找class的顺序

    来自:http://blog.csdn.net/lihai211/article/details/6651977 Tomcat下的文件目录 /bin:存放启动和关闭tomcat的脚本文件: /conf ...

  3. (一)CSS三种插入方式

    CSS概述 CSS(Cascading Style Sheets)指层叠样式表,样式定义了如何显示HTML元素. 样式通常存储在样式表中,样式与HTML分离解决了内容与表现分离的问题. 多个样式表可以 ...

  4. BZOJ 2337 XOR和路径(高斯消元)

    题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2337 题意:给定一个带权无向图.从1号点走到n号点.每次从当前点随机(等概率)选择一条相 ...

  5. Android开发之“点9”

    “点九”是andriod平台的应用软件开发里的一种特殊的图片形式,文件扩展名为:.9.png智能手机中有自动横屏的功能,同一幅界面会在随着手机(或平板电脑)中的方向传感器的参数不同而改变显示的方向,在 ...

  6. Internet Explorer for Mac the Easy Way: Run IE 7, IE8, & IE9 Free in a Virtual Machine

        From link: http://osxdaily.com/2011/09/04/internet-explorer-for-mac-ie7-ie8-ie-9-free/ If you’re ...

  7. java---面试题---.java"源文件中可以包括多个类(不是内部类)

    答题时,先答是什么,再答有什么作用和要注意什么 一个".java"源文件中可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致,main方法只能写在 ...

  8. ASP.NET MVC 学习3、Controller左手从Model获取数据,右手传递到View页面

    参考:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/accessing-your-models-dat ...

  9. 使用Jquery promise 动态引入js文件

    动态加载一个js得方式很多,如下方式: /** *一般方式加载 */ function normalLoadScript(url) { var node = document.createElemen ...

  10. Asp.net正则获取html内容

    1.获取div内容 string str = "tt<u>ss</u><div id=\"test\"><div>< ...