`

[转]J2SE 5.0的三种内置注释类型

    博客分类:
  • Java
阅读更多
晚上才真正的理解了这个;
google 有了这个:

J2SE 5.0的三种内置注释类型

注解(annotation)是J2SE 5.0的新内容,它给我们提供了很好的编程支持,下面介绍一下其内置的三种注解类型:

1. @Override

@Override用在多态情况下,比如:


public abstract class Animal{
   public void say(){
      System.out.println("annimal is saying");
   }
}

public class Cat extends Animal{
    @Override
    public void say(){
        System.out.println("miao, miao");
    }
}



通过@Override来告诉java编译器,say方法是重载的父类的方法,这样,当父类的say方法签名改名的话,比如增加了一些参数,那么子类的Cat中的say方法编译时就会报错,说没有正确的重载父类方法,所以,@Override可以帮我们验证程序的正确性,这一点,很有用。

2. @Deprecated

@Deprecated的意思和JavaDoc中的@deprecated注释在本质上是一样的,使用如下:


public class DeprecatedExample { 
   @Deprecated 
   public static void badMethod() { }
}

public class DeprecatedUser { 
   public static void main(String[] args){
      DeprecatedExample.badMethod(); 
   } 
}


上面的代码如果用javac进行编译的话,会打印出如下信息:
Note: DeprecatedUser.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
1 error
如果你按提示重新加-Xlint进行编译,你就可以得到错误的详细信息:
% javac -Xlint:deprecation
DeprecatedUser.java:3: warning: [deprecation] badMethod() in DeprecatedExample
has been deprecated
DeprecatedExample.badMethod();

需要注意的是:和javadoc中的@deprecated相比,@Deprecated并没有强大多少,因为它不支持参数,而@deprecated后面还可以跟字符串来给一些相关的信息,但@Deprecated做不到,但它提供了运行时自省的功能,来提示错误,所以建议@Deprecated和@deprecated同时使用。

3. @SuppressWarnings

顾名思义,就是抑制警告信息的出现,使用如下:
public class DeprecatedExample2{ 
   @Deprecated 
   public static void foo() { }
}

public class DeprecatedUser2 { 
   @SuppressWarnings(value={"deprecation"}) 
   public static void main(String[] args) { 
      DeprecatedExample2.foo(); 
   } 
}

上述@SuppressWarnings(value={"deprecation"})的作用就是抑制编译器报deprecation的错。
@SuppressWarnings(value={"deprecation"})只支持一个参数,是数组类型,所以你可以不用加value, 写成:@SuppressWarnings({"deprecation"});当想抑制多个类型的警告信息时,可写:@SuppressWarnings({"unchecked","fallthrough",deprecation"}).

注意:在JDK1.5.0 release中,@SuppressWarnings还没有得到完全支持,会在以后支持,但Sun并没有给出具体的时间。

original text
分享到:
评论

相关推荐

    J2SE5.0_CN.chm API中文手册

    J2SE5.0_CN.chm API中文手册

    J2SE 5.0 API (中文版)

    之前,Java 中的枚举通常通过常量类实现,但 J2SE 5.0 引入了枚举类型,使其成为一种独立的类型,可以包含方法和字段,增强了枚举的表达能力和可编程性。 3. **自动装箱与拆箱(Autoboxing/Unboxing)** 自动装箱...

    在Eclipse 3.1中体验J2SE 5.0的新特性.pdf

    这篇文章聚焦于Eclipse 3.1中对J2SE 5.0(也被称为Tiger)新特性的支持,其中重点介绍了枚举类型(enumeration)、注释类型(annotation types)和范型(generics)三大特性,并以枚举类型为例进行了深入探讨。...

    JAVA API官方文档中文版CHM版(J2SE5.0)

    Java API官方文档中文版CHM版(J2SE5.0)是Java开发的重要参考资料,它详尽地阐述了Java 2 Standard Edition 5.0(通常称为Java 5.0)中的各种类库和接口。这个CHM(Compiled HTML Help)文件是一个经过编译的HTML...

    j2se5.0_API

    很好的j2se的API

    J2SE5.0 API.chm

    J2SE5.0 API.chm,这个是英文的,等会再上传中文的,两个加在一起太大了 只好分开传了。。。

    j2se5.0中文版api

    j2se5.0中文版api第2部分,因为上传权限有限,给大家带来不便,请见谅

    J2SE 5.0- Java安全及网络计算的最新技术

    J2SE 5.0的安全特性建立在一个稳固的基础之上,包括强类型语言特性、字节码验证、运行时类型安全检查以及动态类加载器。这些特性共同确保了平台的基础安全,防止了常见的编程错误可能导致的安全漏洞。动态且可扩展的...

    J2SE 5.0专题 之 语言特性

    自动装箱和拆箱是 J2SE 5.0 的另一项重要特性,简化了基本类型与它们的包装类之间的转换过程。 ##### 示例 ```java public class AutoBoxingExample { public static void main(String[] args) { int primitive...

    由韩国出版的J2SE 5.0版的JAVA 2教材源代码

    2. **枚举类型(enum)**:在J2SE 5.0之前,Java没有内置的枚举类型,开发者需要通过创建final类和常量来模拟枚举。5.0版引入了枚举,使枚举变量更安全,且支持更多的方法和操作,如`switch`语句。 3. **泛型...

    upload.jar for J2SE 5.0

    在J2SE 5.0之前,标准的Java API并没有提供直接的文件上传支持,因此开发者需要依赖第三方库或者自己实现复杂的逻辑来处理文件流。"upload.jar" 库的出现,简化了这一过程,为开发者提供了便捷的API接口。 "javax....

    J2SERuntimeEnvironment5.0开发者版

    枚举类型提供了一种更安全、更清晰的方式来定义一组相关的常量,具有内置的比较、迭代和方法定义功能。 3. **自动装箱与拆箱(Autoboxing and Unboxing)** 这一特性简化了基本类型与对应的包装类之间的转换。现在...

    J2SE5.0中文版API

    对于java开发人员来说 没有一个帮助文档是很郁闷的 尤其对于自学的朋友们,今天得到一个中文版的J2SE5.0的API,不敢独自享用,共享出来给大家,分为2个部分part01和part02

    真心福利放送Java API帮助文档网页版(J2SE 5.0)

    1. **语言增强**:J2SE 5.0引入了注解(Annotations),这是一种元数据,可以附加到代码的不同部分,帮助编译器、构建工具和运行时系统提供额外的信息。例如,`@Override`注解确保重写父类方法,`@Deprecated`标记...

    j2se api 5.0 中文版

    真正的j2se api 5.0 中文版帮助,有需要的可以下载.

    J2SE 5.0 API [1] (中文版)

    提示:本人已将一次性可完整下载版上传,名称为:J2SE 5.0 API (中文版)方便网友下载! 很好用的J2SE 5.0 API,具有索引的功能!!! 下载前请注意:不过由于本人等级太低所以只能分3部分上传,劳烦您下载全部3部分...

    J2SE 5.0 API [2] (中文版)

    提示:本人已将一次性可完整下载版上传,名称为:J2SE 5.0 API (中文版)方便网友下载! 很好用的J2SE 5.0 API,具有索引的功能!!! 下载前请注意:不过由于本人等级太低所以只能分3部分上传,劳烦您下载全部3部分...

    J2SE 5.0 API [3] (中文版)

    提示:本人已将一次性可完整下载版上传,名称为:J2SE 5.0 API (中文版)方便网友下载! 很好用的J2SE 5.0 API,具有索引的功能!!! 下载前请注意:不过由于本人等级太低所以只能分3部分上传,劳烦您下载全部3部分...

    Java (J2SE 5.0) and C# Comparison

    在编程世界中,Java(J2SE 5.0)和C#是两种非常重要的、广泛应用的编程语言。它们在很多方面都有相似之处,但也存在显著的差异。下面我们将详细对比这两种语言在程序结构、注释、数据类型、常量以及枚举等方面的特点...

Global site tag (gtag.js) - Google Analytics