J2SE 5.0的三种内置注释类型

转载 2007年10月11日 23:50:00

注解(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并没有给出具体的时间。

 

建枚举类时出现“Project '**' is not a J2SE 5.0 compliant project.”问题怎么办?

首先要确定是不是程序问题,如果不是程序问题,那可能是Eclipse设置有问题,而Eclipse可以指定编译深度,Eclipse设置默认值是1.4,可以将它改成5.0或者以上版本,方法是Window->...
  • pan_yeju
  • pan_yeju
  • 2015-10-06 09:10:47
  • 1373

Project 'Annotation' is not a J2SE 5.0 compliant project.

Project 'Annotation' is not a J2SE 5.0 compliant project. 解决方法1:https://www.genuitec.com/forums/top...
  • KrystalBm
  • KrystalBm
  • 2016-11-17 15:43:02
  • 572

[Java2开发平台标准版5.0].[J2SE.Development.Kit.5.0].jdk-1.5.0.exe

  • 2013年10月12日 08:06
  • 43.93MB
  • 下载

J2SE5.0中文版API

  • 2008年11月21日 14:35
  • 19.07MB
  • 下载

Java使用eclipse新建枚举报出, 项目“xxxxx”不是符合 J2SE 5.0 的项目。的解决办法

在eclipse新建的枚举报出 项目“XXXX”不是符合 J2SE 5.0 的项目。这样的 错误,结果可能是编译器的版本的问题,也可能是你JDK版本的 问题。解决这个问题你可以按照如下的步骤来实现: ...
  • he_min
  • he_min
  • 2015-09-02 20:44:16
  • 1354

J2SE 5.0 API [2] (中文版)

  • 2008年07月28日 18:32
  • 9.54MB
  • 下载

Java Runtime Environment (JRE) 5.0 Update 21

  • 2009年10月01日 17:12
  • 16.66MB
  • 下载

NetBeans 5.0 + J2SE 5.0 Update 6 安装软件包(Windows Platform)

  • 2007年03月21日 14:20
  • 132MB
  • 下载

NetBeans IDE 5.5 J2SE(TM) Development Kit (JDK) 版本 5.0 下载

http://www.netbeans.org/kb/55/quickstart_zh_CN.htmlNetBeans IDE 5.5 快速入门指南欢迎使用 NetBeans IDE!本教程通过向您介...
  • laolaowhn
  • laolaowhn
  • 2008-01-15 19:49:00
  • 2841

Sun公司的Java平台最新版本J2SE 5.0

100多个新特性使J2SE 5.0成为Java开发者的新一代平台    (2004年10月9日讯) Sun Microsystems公司正式发布Java 2平台标准版(J2SE™) 5.0...
  • SmartTony
  • SmartTony
  • 2008-02-01 21:39:00
  • 1036
收藏助手
不良信息举报
您举报文章:J2SE 5.0的三种内置注释类型
举报原因:
原因补充:

(最多只允许输入30个字)