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"}).

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

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值