java中的内置注解Annotation

背景知识:
       从JDK5开始提供名为Annotation(注释)的功能,它被定义为JSR-175规范。注释是以“@注释名”在代码中存在的,还可以添加一些参数值,例如:@SuppressWarnings(value="unchecked")。注释可以附加在package, class, method, field等上面,相当于给它们添加了额外的辅助信息,我们可以通过反射机制编程实现对这些元数据的访问。如果没有外部解析工具等对其加以解析和处理的情况,本身不会对Java的源代码或class文件等产生任何影响,也不会对它们的执行产生任何影响。
     元数据的作用,大致可分为三种:编写文档,通过代码里标识的元数据生成文档;代码分析,通过代码里标识的元数据对代码进行分析;编译检查,通过代码里标识的元数据让编译器能实现基本的编译检查。

JDK5内置的基本注释
    JDK5内置了一些常用的注释,可以在编译时帮我们捕获部分编译错误,及提示信息,下面介绍下这些注释的用法:

1、@Override定义在java.lang.Override中,此注释只适用于修辞方法,表示一个方法声明打算重写超类中的另一个方法声明。如果方法利用此注释类型进行注解但没有重写超类方法,则编译器会生成一条错误消息。例如我们为某类重写toString()方法却写成了tostring(),并且我们为该方法添加了@Override注释;代码如下:

public class OverrideDemo {
    @Override
    public String tostring() {
        return super.toString();
    }
}

 

在编译时,会提示以下错误信息:

OverrideTest.java:4: 方法未覆盖其父类的方法 

          @Override
         ^1 错误

 

 

 

2、@Deprecated定义在java.lang.Deprecated中,此注释可用于修辞方法、属性、类,表示不鼓励程序员使用这样的元素,通常是因为它很危险或存在更好的选择。在使用不被赞成的程序元素或在不被赞成的代码中执行重写时,编译器会发出警告。使用@Deprecated的示例代码如下:

public class DeprecatedDemo {
    public static void main(String[] args) {
         DeprecatedClass.DeprecatedMethod();
    }
}

class DeprecatedClass {
    @Deprecated
    public static void DeprecatedMethod() {
    }
}

 

在编译时,会得到以下提示信息:

注意:DeprecatedDemo.java 使用或覆盖了已过时的 API。
注意:要了解详细信息,请使用 -Xlint:deprecation 重新编译。

要注意@Deprecated与@deprecated的区别,@deprecated是为了生成文档的需要,例如:

class DeprecatedClass {

@Deprecated
    public static void DeprecatedMethod() {
    }
}

 

 

 

3、@SuppressWarnings定义在java.lang.SuppressWarnings中,用来抑制编译时的警告信息。与前两个注释有所不同,你需要添加一个参数才能正确使用,这些参数值都是已经定义好了的,我们选择性的使用就好了,参数如下:

通过上面的表格,你应该了解到每个参数的用意了,下面我就以一个常用的参数unchecked为例,为你展示如何使用@SuppressWarnings注释,示例代码如下:

import java.util.List;
import java.util.ArrayList;
public class SuppressWarningsDemo {
        public static List cache = new ArrayList();
        //@SuppressWarnings(value = "unchecked")
        public void add(String data) {
            cache.add(data);
        }
}

 

当我们不使用@SuppressWarnings注释时,编译器就会有如下提示:

引用

注意:SuppressWarningsDemo.java 使用了未经检查或不安全的操作。
注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。

 

另外,由于@SuppressWarnings注释只有一个参数,并且参数名为value,所以我们可以将上面一句注释简写为
@SuppressWarnings("unchecked")。

同时参数value可以取多个值如:
@SuppressWarnings(value={"unchecked", "deprecation"})
或@SuppressWarnings({"unchecked", "deprecation"})。

原帖地址:http://www.iteye.com/topic/165316

时间: 2024-08-16 19:39:42

java中的内置注解Annotation的相关文章

Java中三种简单注解介绍和代码实例_java

简单Java注解 JDK5提供的简单注解类型只有3个. 这三个都是用来预防错误或者进行提醒的,分别是: 1.Override 2.Deprecated 3.Suppresswarnings 需要注意,JDK5(另一个说法,Tiger)实际上并没有许多内置注解;相反,它允许核心Java支持注解特性的能力. JSR-175中严格规定它用来定义元数据功能. 需要由程序员编写自定义的注解类型,其他JSR标准也编写了一系列标准注解类型. 下面将用实例来深入讲解这三个简单注解. Override 注解 Ov

秒懂ASP.NET中的内置对象

       上篇博客,小编主要简单的介绍了一下ASP.NET中的控件,这篇博客,小编主要简单总结一下ASP.NET中的内置对象,七个内置对象分别是:Request.Response.Application.Cookies.Session.Server.Trace.这些对象使得用户更容易收集通过浏览器请求发送的信息.相应浏览器以及存储用户信息,以实现其他特定的状态管理和页面信息的传递,首先,我们来看下面一张图:                 接下来,小编主要从概述,基本语法,常用属性和方法以及

JavaScript中的内置对象--Number对象

JavaScript中的内置对象有以下6个: 1.Number对象 2.Boolean对象 3.Data对象 4.Math对象 5.String对象 6.Array对象 在JavaScript中,数字是一种基本的数据类型,同时JavaScript还支持Number这个对象,该对象是原始数值的包装对象.在必要的时候,JavaScript会自动地在原始数据和对象之间转换. 创建一个Number对象的2中不同方法: var num1=Number("123"); var num2=new N

在DevExpress程序中使用内置的图标构建美观的界面元素

在我们一般的程序中,为一般的界面元素添加一定的图标展示,有助于提升界面的整体的美观.结合排版布局,以及固定场景的图标,往往给用户非常好的直观感受:统一.美观.易理解.因此在一般的程序界面中,都尽量在略显单调的界面增加一些图标进行点缀,能够达到较好的整体效果.本文介绍在Winform程序界面中,可以使用自己的图标库,也可以引入DevExpress程序中使用内置的图标,从而实现给开发的程序润色. 1.使用自己的图标库 不管在Web还是在WInform项目里面,开发者积累一定的图标库,包括256,12

在PPT演示文档中使用内置音效

本文为希望利用音效突出Powerpoint演示文档效果的朋友介绍增加PPT内置音效选择的方法和技巧. 又到年底,在各种年终报告中,PPT又将成为当之无愧的主角.可惜PPT内置的音效只有爆炸.抽气.锤打那么十几个,虽然单击"其他声音"可以打开任意声音文件做音效,但相比直接从下拉列表中选择音效要麻烦多了.我们要是能把自己常用的音效文件添加到内置的音效下拉列表中,岂不简单?近日偶然找到一个增加Powerpoint内置音效的简单方法,在此与大家共享. 1.添加内置音效 打开PPT2007,切换

清除Eclipse中的内置浏览器中的历史记录

如题,今天看到有人在问这问题,好奇,网上寻找了下. 没有找到解决办法.自己动手,如下: eclipse内置浏览器的访问记录是存储在对应的工程目录下的.metadata配置 中, 也就是说你新建一个工程的话就没有了. 如果确实要删除那就找到工作空间中的org.eclipse.ui.browser.prefs文件 ,例如我的工作空间是D:\rapin 那么文件所在的位置为: D:\rapin\.metadata\.plugins\org.eclipse.core.runtime\.settings\

在Word2010文档中插入内置公式

Word2010和Office.com提供了多种常用的公式供用户直接插入到Word2010文档中,用户可以根据需要直接插入这些内置公式,以提高工作效率,操作步骤如下所述: 第1步,打开Word2010文档窗口,切换到"插入"功能区. 第2步,在"符号"分组中单击"公式"下拉三角按钮,在打开的内置公式列表中选择需要的公式(如"二次公式")即可,如图2011071701所示. 图2011071701 插入内置公式 小提示:在当前计

ActiveMQ第三弹:在Spring中使用内置的Message Broker

在上个例子中我们演示了如何使用Spring JMS来向ActiveMQ发送消息和接收消息.但是这个例子需要先从控制台使用ActiveMQ提供的命令行功能启动一个Message Broker,然后才能运行示例.这个Message Broker就相当于一个server,无论是发送方还是接收方都可以连接到这个Server进行消息的处理.在某些情况下,让Message Broker和consumer启动在同一个JVM里面,通信效率肯定会高不少. ActiveMQ提供了很多方式来创建内置的broker.这

JDK5.0中的内置工具简介

JDK5.0里面加入了jstack, jconsole, jinfo, jmap, jdb, jstat, jps, 下面对这些工具做简单介绍:jstack -- 如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题.另外,jstack工具还可以附属到正在运行的java程序中,看到当时运行的java程序的java stack和native stack的信息