zoukankan      html  css  js  c++  java
  • JAVA 注解教程(三)注解的属性

    简介

    注解的属性也叫做成员变量,注解只有成员变量,没有方法。注解的成员变量在注解的定义中以“无形参的方法”形式来声明,其方法名定义了该成员变量的名字,其返回值定义了该成员变量的类型

    实例

    @Target(ElementType.TYPE)
    @Retention(RetentionPolicy.RUNTIME)
    public @interface TestAnnotation {
    
        int id();
    
        String msg();
    
    }

    备注:上面代码定义了 TestAnnotation 这个注解中拥有 id 和 msg 两个属性。在使用的时候,我们应该给它们进行赋值。

    赋值

    赋值的方式是在注解的括号内以 value=”” 形式,多个属性之前用 ,隔开。

    @TestAnnotation(id=3,msg="hello annotation")
    public class Test {
    
    }

    备注:在注解中定义属性时它的类型必须是 8 种基本数据类型外加 类、接口、注解及它们的数组

    默认值

    注解中属性可以有默认值,默认值需要用 default 关键值指定。比如:

    @Target(ElementType.TYPE)
    @Retention(RetentionPolicy.RUNTIME)
    public @interface TestAnnotation {
    
        public int id() default -1;
    
        public String msg() default "Hi";
    
    }

    备注:TestAnnotation 中 id 属性默认值为 -1,msg 属性默认值为 Hi。
    它可以这样应用

    @TestAnnotation()
    public class Test {}

    因为有默认值,所以无需要再在 @TestAnnotation 后面的括号里面进行赋值了,这一步可以省略。

    默认的value

    如果一个注解内仅仅只有一个名字为 value 的属性时,应用这个注解时可以直接把属性值填写到括号内。

    public @interface Check {
        String value();
    }

    上面代码中,Check 这个注解只有 value 这个属性,所以可以这样应用。

    @Check("hi")
    int a;

    这和下面的效果是一样的

    @Check(value="hi")
    int a;

    无属性

    一个注解没有任何属性,比如

    public @interface Perform {}

    那么在应用这个注解的时候,括号都可以省略。

    @Perform
    public void testMethod(){}

    --------------------- 本文摘取 frank909 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/briblue/article/details/73824058?utm_source=copy 

  • 相关阅读:
    JS判断是PC端还是移动端
    js对象转数组
    js获取当前域名、Url、相对路径和参数以及指定参数
    javascript返回上一页的三种写法
    js正则归纳总结
    higtcharts 生成图表个数问题
    js如何处理后台传递过来的Map
    jQuey实现鼠标滑过整行变色
    <display:column>常用属性解释
    <display:table>常用属性解释
  • 原文地址:https://www.cnblogs.com/7q4w1e/p/9719771.html
Copyright © 2011-2022 走看看