ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java注解

2022-07-08 17:03:36  阅读:163  来源: 互联网

标签:MyAnno java Target 源文件 Inherited 注解 Documented


注解A

package cn.anno;

import java.lang.annotation.*;

/**
 * 一些元注解和作用
 * Target:说明了注解定义的位置,位置可以是类(Type),成员方法,成员属性,泛型上面,
 * Retention:说明了注解存在的生命周期,3种  第一种 源文件 ;第二种源文件和.class字节码文件 ;第三种 源文件,.class字节码文件和运行时
 * Inherited:说明了注解是可以继承的, 子类可以重复,但是只显示一份。
 * Repeatable: 说明注解是可以多次定义的 当引入@Repeatable的时候必须需要指定它的value值。
 *      1.需要注意注解类元注解应该一样
 *      2.需要说明值
 * Documented:生成javadoc文档时候就会把注解显示出来
 */

/**
 * 注解类@interface
 *  只有在底层的时候有用
 *  正常运行时也不需要注解
 */

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Repeatable(MyAnnos.class)
@Documented
public @interface  MyAnno {
    //通过方法声明定义标签里面的键值对
    //方法名是参数名,方法返回值是值类型

    String name();
    String note();
}

辅助注解B(为了实现注解A可以在一个地方多次使用构造的辅助注解类)

 1 package cn.anno;
 2 
 3 import java.lang.annotation.*;
 4 
 5 /**
 6  * 元注解必须和MyAnno一样
 7  */
 8 @Target({ElementType.TYPE})
 9 @Retention(RetentionPolicy.RUNTIME)
10 @Inherited
11 @Documented
12 public @interface MyAnnos {
13         //声明value
14     MyAnno[] value();
15 }

 

标签:MyAnno,java,Target,源文件,Inherited,注解,Documented
来源: https://www.cnblogs.com/study-liu/p/OOP-java-anno.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有