java三种注释_Java中三种常见的注释(注解) Annotation

Java为我们提供了三种Annotation方便我们开发。

1 Override-函数覆写注解

如果我们想覆写Object的toString()方法,请看下面的代码:

1 classAnnotationDemo2 {3 privateString info;4 publicAnnotationDemo(String info)5 {6 this.info =info;7 }8

9 publicString tostring()10 {11 return "info的值是:" + this.info;12 }13 }14

15 public classMain16 {17 public static voidmain(String[] args)18 {19 AnnotationDemo ad = new AnnotationDemo("你好");20 System.out.println(ad);21 System.out.println("Main Done//~~");22 }23 }

上面的代码,我们期望能在AnnotationDemo类中覆写toString()方法,结果在运行的时候发现,程序调用的是Object的toString方法。原因是,我们的函数代码编写有瑕疵,将本应是toString()的方法名写成了tostring().该bug在我们运行代码后才能暴露出来。如果我们在tostring()上加上@Override注解,就可以显示的告诉JAVA编译器,我的函数是要覆写父类方法,请执行检查。请看代码:

1 packagemain;2

3

4 classAnnotationDemo5 {6 privateString info;7 publicAnnotationDemo(String info)8 {9 this.info =info;10 }11

12 @Override13 publicString tostring()14 {15 return "info的值是:" + this.info;16 }17 }18

19 public classMain20 {21 public static voidmain(String[] args)22 {23 AnnotationDemo ad = new AnnotationDemo("你好");24 System.out.println(ad);25 System.out.println("Main Done//~~");26 }27 }

上面的代码不能通过编译。

2 Depreced-方法过期注解

如果我们在方法上用@Depreced注解,那么就是告诉用户,这个方法已经不推荐使用了。如下面的代码:

1 classAnnotationDemo2 {3 privateString info;4 publicAnnotationDemo(String info)5 {6 this.info =info;7 }8

9 @Deprecated10 public voidshowInfo()11 {12 System.out.println(this.info);13 }14

15 @Override16 publicString toString()17 {18 return "info的值是:" + this.info;19 }20 }21

22 public classMain23 {24 public static voidmain(String[] args)25 {26 AnnotationDemo ad = new AnnotationDemo("你好");27 System.out.println(ad);28 System.out.println("Main Done//~~");29 }30 }

上面的代码在编译的时候会警告用户,showInfo()方法已经不推荐使用了。

3  @SuppressWarning-压制警告

压制警告的意思是,当我们代码有警告信息的时候,而我们不认为该警告会对我们的代码造成威胁,此时可以用@SuppressWarning将警告的提示信息取消。

1 @SuppressWarnings("serial")2 class AnnotationDemo implementsSerializable3 {4 privateString info;5 publicAnnotationDemo(String info)6 {7 this.info =info;8 }9

10 @Deprecated11 public voidshowInfo()12 {13 System.out.println(this.info);14 }15

16 @Override17 publicString toString()18 {19 return "info的值是:" + this.info;20 }21 }

上面的代码实现了Serializable接口,该接口需要类中有一个serialVersionUID字段已标志不同的版本。而实际上我们不需要这个字段,那么在类上将该警告压制住,编译器就不会在提示警告信息了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值