Java--枚举和注解--注解

    1.  

      package com.model.annotation;
      
      /**
       * @Description:测试类
       * @Author: 张紫韩
       * @Crete 2021/7/2 21:03
       * 演示注解 @Override的使用
       */
      public class AnnotationDemo01 {
          public static void main(String[] args) {
      
          }
      }
      class Father{
      
          public void test(){
      
          }
      }
      class Son extends Father{
          /*
          * 1. @Override 注解放在test方法上,表示子类的test方法时重写了父类的方法
            2.这里如果没有写@Override 还是重写了父类的方法
            3.如果你写了@Override注解,编译器就会去检查该方法是否真的重写了父类的方法,如果的确重写了,则编译通过,如果没有构成重写,则编译错误
            4.看看@Override的定义
          //解读:如果发现@interface表示一个注解类/*
          @Target(ElementType.METHOD)
          Retention(RetentionPolicy . SOURCE)public @interface Override {
          }
      */
          @Override
          public void test() {
              super.test();
          }
      }
    2.      

  1.  

    1.  

    2. package com.model.annotation;
      
      /**
       * @Description:测试类
       * @Author: 张紫韩
       * @Crete 2021/7/2 21:16
       * 演示注解 @Deprecated
       */
      public class AnnotationDemo02 {
          public static void main(String[] args) {
      
              A a = new A();
          }
      }
      /**
       *
       * 1.修饰某个类,标识已经过时的
       * 2.即不在推荐使用,但仍可以使用
       * 3.查看@Deprecate的源码 :可以做版本升级过渡使用
       * @Documented
       * @Retention(RetentionPolicy.RUNTIME)
       * @Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE}) :使用范围
       * public @interface Deprecated {
       * }
       * */
      @Deprecated
      class A{
      
          private String name;
      }
    1.  

    2.  

      package com.model.annotation;
      
      import java.util.ArrayList;
      
      /**
       * @Description:测试类
       * @Author: 张紫韩
       * @Crete 2021/7/2 21:24
       */
      public class AnnotationDemo03 {
          /**
           * @SuppressWarnings: 注解用来抑制我们的注解,警告信息的出现
           * all:指定所有的警告全部抑制
           * 作用范围 :我们放在方法前面只能作用与当前的方法,放在类上可以作用于整个类
           * 源码:
           *
           * @Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE}):作用范围
           * @Retention(RetentionPolicy.SOURCE)
           * public @interface SuppressWarnings {
           *    String[] value(); //有一个数组说明可以传入一个数组:{"all","unchecked","unused"}
           *    }
           * */
          @SuppressWarnings("all")
          public static void main(String[] args) {
      
              ArrayList<String> list = new ArrayList<>();
              list.add("a");
              list.add("b");
              list.add("c");
              int i=0;
      
              System.out.println();
          }
      }
  2. JDK的元注解Annotation:

    1.  

      1.  


      1.   
posted @ 2021-07-02 22:10  张紫韩  阅读(43)  评论(0编辑  收藏  举报