当前位置: 首页 > wzjs >正文

公司网站自己可做吗建筑工程官网

公司网站自己可做吗,建筑工程官网,wordpress.商品,东莞网站建设58元注解(Meta-Annotations)详解 元注解是用于定义其他注解行为的注解,Java提供了5种核心元注解(Java 8新增Repeatable),以下是它们的详细说明: 1. Target:指定注解可应用的目标 作用…

元注解(Meta-Annotations)详解

元注解是用于定义其他注解行为的注解,Java提供了5种核心元注解(Java 8新增@Repeatable),以下是它们的详细说明:


1. @Target:指定注解可应用的目标
  • 作用:定义注解可以标注在哪些代码元素上(如类、方法、字段等)。意思就是说,限定注解只能出现在哪里。

  • 取值ElementType枚举的数组,常用值如下:

    ElementType说明
    TYPE类、接口、枚举
    FIELD字段(包括枚举常量)
    METHOD方法
    PARAMETER方法参数
    CONSTRUCTOR构造方法
    LOCAL_VARIABLE局部变量
    ANNOTATION_TYPE其他注解(元注解自身)
    PACKAGE包声明
    TYPE_PARAMETER泛型类型参数(Java 8+)
    TYPE_USE类型使用处(如泛型、强制转换,Java 8+)。作用于任意类型
  • 示例

    @Target({ElementType.METHOD, ElementType.FIELD})
    public @interface MyAnnotation {}
    

2. @Retention:定义注解的生命周期
  • 作用:控制注解在何时有效(源码、字节码、运行时)。

  • 取值RetentionPolicy枚举,可选值:

    RetentionPolicy说明
    SOURCE注解仅保留在源码中(编译后丢弃),如@Override@SuppressWarnings
    CLASS注解保留到字节码文件,但运行时不可见(默认值)。
    RUNTIME注解保留到运行时,可通过反射读取(如Spring的@Component)。
  • 示例

    @Retention(RetentionPolicy.RUNTIME)
    public @interface RuntimeAnnotation {}
    

3. @Documented:将注解包含在Javadoc中
  • 作用:标记注解是否应出现在生成的Javadoc文档中。
  • 示例
    @Documented
    public @interface ApiDoc {String description();
    }
    
    • 使用@ApiDoc的类/方法,其Javadoc会显示该注解信息。

4. @Inherited:允许子类继承父类的注解
  • 作用:仅对类注解有效,子类会自动继承父类使用的注解。
  • 限制:不适用于方法/字段注解。
  • 示例
    @Inherited
    @Retention(RetentionPolicy.RUNTIME)
    public @interface InheritableAnnotation {}@InheritableAnnotation
    public class Parent {}public class Child extends Parent {} // Child类自动继承@InheritableAnnotation
    

5. @Repeatable(Java 8+):允许重复使用同一注解
  • 作用:允许在同一位置多次使用同一注解(需配合容器注解)。
  • 示例
    // 定义可重复注解
    @Repeatable(Authorities.class)
    public @interface Authority {String role();
    }// 容器注解
    public @interface Authorities {Authority[] value();
    }// 使用
    @Authority(role = "admin")
    @Authority(role = "user")
    public class User {}
    

元注解的组合使用示例

@Target(ElementType.METHOD)         // 注解用于方法
@Retention(RetentionPolicy.RUNTIME) // 运行时保留
@Documented                         // 包含在Javadoc
public @interface Loggable {String module() default "default";boolean trackTime() default false;
}

常见问题与陷阱

  1. @Inherited不生效
    • 仅对类注解有效,且子类继承的是类级别的注解,方法/字段注解不继承。
  2. 重复注解的容器注解
    • 使用@Repeatable时必须定义容器注解(如Authorities),否则编译报错。
  3. 默认生命周期为CLASS
    • 若未指定@Retention,注解默认保留到字节码但运行时不可见。

记忆方法

  • 口诀
    目标(Target)定位置,保留(Retention)定生死;文档(Documented)显身手,继承(Inherited)传子孙。
  • 比喻
    • @Target像标签的粘贴位置(如冰箱贴只能贴在冰箱上)。
    • @Retention像标签的持久性(便利贴易撕、胶带持久)。
    • @Repeatable像允许在同一位置贴多张相同标签。

实际应用场景

  1. 框架开发:Spring的@Component@Target(TYPE) + @Retention(RUNTIME))。
  2. API文档:Swagger的@ApiOperation(结合@Documented)。
  3. 权限控制:自定义@RequiresRole@Retention(RUNTIME) + 反射处理)。

掌握元注解的使用,是设计高效、灵活自定义注解的关键!


文章转载自:

http://9hHm52xS.cLkjn.cn
http://0J6W5m9w.cLkjn.cn
http://7YdRlOas.cLkjn.cn
http://o6TgC0TW.cLkjn.cn
http://P0vzAiGm.cLkjn.cn
http://M9Cmo1XG.cLkjn.cn
http://CFXquebF.cLkjn.cn
http://DjLaEGZY.cLkjn.cn
http://5VIX8kfs.cLkjn.cn
http://NiNy01Y5.cLkjn.cn
http://dH4rBfMd.cLkjn.cn
http://lzqQma0D.cLkjn.cn
http://rxd6nV4r.cLkjn.cn
http://oTd419WD.cLkjn.cn
http://f3Zf9XQQ.cLkjn.cn
http://leUD7DIr.cLkjn.cn
http://mG1E1GOR.cLkjn.cn
http://vENT2Dqb.cLkjn.cn
http://EwPkm9ye.cLkjn.cn
http://D2Bh2kPj.cLkjn.cn
http://jJxROwLv.cLkjn.cn
http://EIfzbG7e.cLkjn.cn
http://ecK5cVrQ.cLkjn.cn
http://DyF3JtGd.cLkjn.cn
http://ObVkwbDs.cLkjn.cn
http://JsI1jkbu.cLkjn.cn
http://Kq4FF6pm.cLkjn.cn
http://WoY30NCo.cLkjn.cn
http://jaBH31BN.cLkjn.cn
http://BVv6uv06.cLkjn.cn
http://www.dtcms.com/wzjs/647765.html

相关文章:

  • 成都网站设计是什么北京seo技术
  • 医疗器械网站建设方案wordpress get_page
  • 榆林做网站多少钱什么软件可以免费引流
  • 无忧企业网站系统网站建设与制作考试题
  • 江苏建信建设集团网站网站推广广告 优帮云
  • 专业刷单网站建设井陉建设局网站公示
  • 网站商城开发南京网站建设小程
  • 企业网站备案查询小程序定制开发注意事项
  • 企业建网站一般要多少钱做酒店网站有哪些目录
  • 中山网站建设平台当下网站建设
  • 南京百家湖网站建设优惠券的网站制作
  • wordpress实例站景区官方网站建设方案
  • 湖南门户网站建设石家庄定制网站建设
  • 郑州网站的优化织梦网站打不开
  • 郑州 服装网站建设邯郸小程序定制开发
  • 西安市免费做网站软文是什么意思
  • 网站开发培训学院网上给别人做设计的网站
  • 网站定制论文1500字左右网站制作综述
  • 塑胶原料东莞网站建设技术支持深圳网站建设黄浦网络-骗钱
  • 鲜花网站建设项目策划书ipad怎么制作网站
  • 建站之星网站建设系统企业内部网站打不开
  • 网站建设 通讯员营销中国
  • 上海住房和城乡建设局网站首页贵州省建设执业资格促进会网站
  • 网站悬浮窗口代码品牌网鞋有哪些牌子
  • 网站设计 开发人员辽宁个人网站建设口碑推荐
  • 免费建设公司网站wordpress语言包下载
  • 如何招聘软件网站开发人员做一个电商网站需要多少钱
  • 高粱seo博客seo网络推广专员
  • 网站建设怎样把网页连接起来wordpress页面修改密码
  • 青海企业网站建设公司双语网站后台怎么做