zoukankan      html  css  js  c++  java
  • 注解

    注解

    Java常用的三个内置注解:

    • @Override : 定义在Java.lang.Override中,表示覆盖父类方法;

    • @Deprecated : 定义在Java.lang.Deprecated中,表示不建议使用的;

    • @SuppressWarning : 定义在Java.lang.SuppressWarning中,抑制警告信息;

    元注解:

    • 元注解的作用就是负责注解其它注解,Java定义了4个标准的meta-annotation类型,他们被用来提供对其它annotation类型作说明。
    • 可以在Java.lang.annotation包中可以找到4个元注解,它们分别是(@Target,@Retention,@Documented,@Inherited)
      • @Target : 用于描述注解的使用范围(即:被描述的注解可以用在什么地方);
      • @Retention : 表示需要在什么级别保存该注释信息,用于描述注解的生命周期(SOURCE>CLASS>RUNTIME);
      • @Documented : 说明该注解将被包含在JavaDoc中;
      • @Inherited : 说明子类可以继承父类中的该注解;

    自定义注解:

    • 使用@interface自定义注解时,自动继承了Java.lang.annotation.Annotation接口;

    • 定义注解的格式:

      • public @interface 注解名 {定义的内容}

        @Target(ElementType.METHOD)  // 注解的使用范围,多个用逗号隔开
        @Retention(RetentionPolicy.RUNTIME) // 注解的生命周期  SOURCE>CLASS>RUNTIME
        public @interface MyAnnotation{}
        
    • 注解中参数只有一个的话,参数名一般使用value

      @Target({ElementType.METHOD,ElementType.FIELD})  // 注解的使用范围,多个用逗号隔开
      @Retention(RetentionPolicy.RUNTIME) // 注解的生命周期  SOURCE>CLASS>RUNTIME
      @interface MyAnnotation{
          String value();
      }
      
    • 默认值的问题

      • 没有定义默认值:

        public class Test06 {
            @MyAnnotation(name = "张三",sex = 0)
            public void test01(){}
        }
        
        @Target({ElementType.METHOD,ElementType.FIELD})  // 注解的使用范围,多个用逗号隔开
        @Retention(RetentionPolicy.RUNTIME) // 注解的生命周期  SOURCE>CLASS>RUNTIME
        @interface MyAnnotation{
            int name();
        
            String sex();
        
            // 使用注解时括号内必须有值,如果不想写,我们可以在定义注解时定义一个默认值;
        }
        
      • 定义了默认值:

      public class Test06 {
          @MyAnnotation
          public void test01(){}
      }
      
      @Target({ElementType.METHOD,ElementType.FIELD})  // 注解的使用范围,多个用逗号隔开
      @Retention(RetentionPolicy.RUNTIME) // 注解的生命周期  SOURCE>CLASS>RUNTIME
      @interface MyAnnotation{
          int name() default 0;
      
          String sex() default "";
      
          // 使用注解时括号内必须有值,如果不想写,我们可以在定义注解时定义一个默认值;
      }
      

    我们如何读取注解呢?我们可以通过反射机制!

  • 相关阅读:
    IDEA 中 右键新建时,没有新建class的解决方案
    Git--删除远程仓库文件但不删除本地仓库资源
    Git——跟踪或取消跟踪文件
    git命令大杂烩
    判断项目中是否有slf4j的实现类
    完美解决在Servlet中出现一个输出中文乱码的问题
    mysql常用命令和语句
    设置idea快速生成doc comment
    关于pom.xml中的dependency中的顺序
    Pyqt5_QMessageBox
  • 原文地址:https://www.cnblogs.com/whitespaces/p/12662546.html
Copyright © 2011-2022 走看看