zoukankan      html  css  js  c++  java
  • 注解

    注解

    内置注解

    • @override:表示一个方法声明打算重写超类中的另一个方法声明

    • @Deprecated:表示不鼓励程序员使用的元素,通常它有危险或存在更好的选择,但可以用。

    • @SuppressWarnings:镇压警告信息,带参数使用

      • @SuppressWarnings("all"):镇压所有警告。

      • @SuppressWarnings("all"):镇压未检查警告。

        ......

    元注解

    • 解释其他注解的注解,本质还是注解
    • java定义了四个元注解:
      • @Target:用于描述注解的使用范围(即:被描述的注解可以用在什么地方)
      • @Retention:表示需要在什么级别保存该注释信息,用于描述注解的生命周期(表示在什么时候有效)
        • (SOURCE<CLASS<RUNTIME)
      • @Document:说明该注解将被包含在javadoc中
      • @Inherited:说明子类可以继承父类中的该注解

    自定义注解

    • 使用@interface自定义注解时,自动继承了java.,long.annotation.Annotation接口
    • 分析
      • @interface用来声明一个注解,格式:public @interface 注解名 {定义内容}
      • 其中的每一个方法实际上是声明了一个配置参数
      • 方法的名称就是参数的名称
      • 返回值类型就是参数的类型(返回值只能是基本类型,Class,String,enum)
      • 可以通过default来声明参数的默认值
      • 如果只有一个参数,一般参数名为value
      • 注解元素必须要有值,我们定义注解元素是,经常使用空字符串,0作为默认值
    package com.Lv.Test;
    
    import java.lang.annotation.ElementType;
    import java.lang.annotation.Retention;
    import java.lang.annotation.RetentionPolicy;
    import java.lang.annotation.Target;
    
    /**
     * @Author: Lv
     * @Description:自定义注解
     * @Vision: 1.0
     * @Date: Created in 9:20 2020/7/6
     */
    public class Test01 {
        //注解可以显式赋值,如果没有默认值,我们就必须给注解赋值
        @MyAnnotation(age = 18,name = "Lv")
        public void test(){}
    
        @MyAnnotation02("hello")   //如果参数只有一个值,且定义为value,那么这里可以不用写参数名
        public void test02(){}
    }
    
    @Target({ElementType.TYPE,ElementType.METHOD})   //定义这个注解可以用于方法
    @Retention(RetentionPolicy.RUNTIME)   //定义运行时有效
    @interface MyAnnotation {
        //注解的参数:参数类型 + 参数名();
        String name();
        int age() default 0;
        int id() default -1;   //默认值如果为-1,代表不存在
    
        String[] schools() default {"清华大学"};
    }
    @Target({ElementType.TYPE,ElementType.METHOD})
    @Retention(RetentionPolicy.RUNTIME)
    @interface MyAnnotation02 {
        String value();
    }
    
  • 相关阅读:
    rails学习笔记(6)
    流程图好工具推荐JUDE
    流程图好工具推荐JUDE
    rails学习笔记(5)
    [转载 js]JsDoc Toolkit:Javascript文档利器
    ruby学习笔记(7)
    end_form_tag 已经在rails2.x中去掉了
    [转载 js]JsDoc Toolkit:Javascript文档利器
    rails学习笔记(5)
    ios 防止按钮快速点击造成多次响应的避免方法。
  • 原文地址:https://www.cnblogs.com/Lv-orange/p/13282916.html
Copyright © 2011-2022 走看看