• Java中三种常见的注释(注解) Annotation


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

    1 Override-函数覆写注解

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

     1 class AnnotationDemo
     2 {
     3     private String info;
     4     public AnnotationDemo(String info)
     5     {
     6         this.info = info;
     7     }
     8     
     9     public String tostring()
    10     {
    11         return "info的值是:" + this.info;
    12     }
    13 }
    14 
    15 public class Main
    16 {
    17     public static void main(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 package main;
     2  
     3 
     4 class AnnotationDemo
     5 {
     6     private String info;
     7     public AnnotationDemo(String info)
     8     {
     9         this.info = info;
    10     }
    11     
    12     @Override
    13     public String tostring()
    14     {
    15         return "info的值是:" + this.info;
    16     }
    17 }
    18 
    19 public class Main
    20 {
    21     public static void main(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 class AnnotationDemo
     2 {
     3     private String info;
     4     public AnnotationDemo(String info)
     5     {
     6         this.info = info;
     7     }
     8     
     9     @Deprecated
    10     public void showInfo()
    11     {
    12         System.out.println(this.info);
    13     }
    14     
    15     @Override
    16     public String toString()
    17     {
    18         return "info的值是:" + this.info;
    19     }
    20 }
    21 
    22 public class Main
    23 {
    24     public static void main(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 implements Serializable
     3 {
     4     private String info;
     5     public AnnotationDemo(String info)
     6     {
     7         this.info = info;
     8     }
     9     
    10     @Deprecated
    11     public void showInfo()
    12     {
    13         System.out.println(this.info);
    14     }
    15     
    16     @Override
    17     public String toString()
    18     {
    19         return "info的值是:" + this.info;
    20     }
    21 }

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

  • 相关阅读:
    重复的listen port引发的问题
    Win10开始运行不保存历史记录原因和解决方法
    意识到const版本函数的重要性
    人物访谈1
    人物访谈2
    读《浪潮之巅》有感
    测试作业
    读《活出生命的意义》有感
    价值观作业
    关于C语言的问卷调查
  • 原文地址:https://www.cnblogs.com/kuillldan/p/6286191.html
Copyright © 2020-2023  润新知