全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

java注解的全面分析

全面解析java注解

Java中的常见注解

a.JDK中的注解

    @Override 覆盖父类或者父接口的方法
    @Deprecated 表示方法已经过时
    @SuppressWarnings("deprecation") 忽略方法过时警告

b.常见的第三方注解

    例如Spring中的@Autowired(自动注入)

注解的分类

a.按照运行机制分

    1.源码注解
        注解只在源码中存在,编译成class文件就不存在了

    2.编译时注解
        注解在源码和class文件中都存在
        eg:@Override、@Deprecated、@SuppressWarnings

    3.运行时注解
        在运行阶段还起作用,甚至会影响运行逻辑
        eg:@Autowired

b.按照来源分

    1.来自JDK的注解
    2.来自第三方的注解
    3.自定义注解

c.元注解:注解的注解

自定义注解

1.自定义注解的语法要求

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ElementType.METHOD,ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface Description {
  String desc();
  String author();
  int age() default 18;
}

注意:

  • 使用@interface关键字定义注解
  • 成员以无参无异常方式声明
  • 可以用default为成员指定一个默认值
  • 成员类型是受限的,合法的类型包括原始类型以及String、Class、Annotation、Enumeration
  • 如果注解只有一个成员,则成员名必须取名为value(),在使用时可以忽略成员名和赋值号(=)
  • 注解类可以没有成员,没有成员的注解称为标识注解

2.元注解

a.@Target({ElementType.METHOD,ElementType.TYPE})

注解的作用域:

  • ElementType.CONSTRUCTOR 构造方法声明
  • ElementType.FIELD 字段声明
  • ElementType.LOCAL_VARIABLE 局部变量声明
  • ElementType.METHOD 方法声明
  • ElementType.PACKAGE 包声明
  • ElementType.PARAMETER 参数声明
  • ElementType.TYPE 类、接口

b.@Retention(RetentionPolicy.RUNTIME)

注解的生命周期:

  • RetentionPolicy.SOURCE 只在源码显示,编译时会丢弃
  • RetentionPolicy.CLASS 编译时会记录到class中,运行时忽略
  • RetentionPolicy.RUNTIME 运行时存在,可以通过反射读取

c.@Inherited

标识性的元注解:允许子类继承

d.@Documented

生成javadoc时会包含注解

使用自定义注解
语法:@注解名(成员1=成员值1,成员2=成员值2)

@Description(desc="I am demo",author="boy",age=18)
public void demo(){}

解析注解

概念:通过反射获取类、函数或成员上的运行时注解信息,从而实现动态控制程序运行的逻辑

以上就是java 注解的实例详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# java  # 注解  # 注解的详解  # 分析java注解  # Java注解与反射原理说明  # Java注解处理器学习之编译时处理的注解详析  # Java注解Annotation与自定义注解详解  # Java注解处理器简单实例  # Java注解机制之Spring自动装配实现原理详解  # 深入理解 Java注解及实例  # 浅谈Java注解和动态代理  # 详解Java注解的实现与使用方法  # 深入理解Java注解的使用方法  # 全面剖析java中的注解(Annotation)  # 自定义  # 只在  # 第三方  # 子类  # 就不  # 控制程序  # 如有  # 可以用  # 可以通过  # 希望能  # 只有一个  # 谢谢大家  # 中都  # 运行机制  # 默认值  # 疑问请  # 编译成  # brush  # import  # pre 


相关文章: 建站之星后台密码如何安全设置与找回?  定制建站流程解析:需求评估与SEO优化功能开发指南  如何选择适合PHP云建站的开源框架?  建站之星如何快速更换网站模板?  建站主机核心功能解析:服务器选择与网站搭建流程指南  如何在Windows环境下新建FTP站点并设置权限?  建站之星微信建站一键生成小程序+多端营销系统  如何在建站主机中优化服务器配置?  如何在宝塔面板创建新站点?  公司网站制作价格怎么算,公司办个官网需要多少钱?  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  金*站制作公司有哪些,金华教育集团官网?  建站之星免费模板:自助建站系统与智能响应式一键生成  如何通过多用户协作模板快速搭建高效企业网站?  如何在IIS中新建站点并配置端口与物理路径?  兔展官网 在线制作,怎样制作微信请帖?  如何获取PHP WAP自助建站系统源码?  如何用y主机助手快速搭建网站?  微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?  linux top下的 minerd 木马清除方法  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  如何通过虚拟主机快速完成网站搭建?  C#如何在一个XML文件中查找并替换文本内容  如何快速查询网站的真实建站时间?  如何在新浪SAE免费搭建个人博客?  建站主机是否属于云主机类型?  成都响应式网站开发,dw怎么把手机适应页面变成网页?  油猴 教程,油猴搜脚本为什么会网页无法显示?  深圳网站制作案例,网页的相关名词有哪些?  如何选择CMS系统实现快速建站与SEO优化?  台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?  宝塔建站后网页无法访问如何解决?  制作农业网站的软件,比较好的农业网站推荐一下?  如何快速生成专业多端适配建站电话?  建站主机选哪家性价比最高?  早安海报制作网站推荐大全,企业早安海报怎么每天更换?  香港服务器如何优化才能显著提升网站加载速度?  如何用已有域名快速搭建网站?  表情包在线制作网站免费,表情包怎么弄?  微信推文制作网站有哪些,怎么做微信推文,急?  如何快速生成高效建站系统源代码?  如何在IIS管理器中快速创建并配置网站?  如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法  建站之星北京办公室:智能建站系统与小程序生成方案解析  如何快速重置建站主机并恢复默认配置?  番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?  小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化  北京网站制作的公司有哪些,北京白云观官方网站?  网站制作的步骤包括,正确网址格式怎么写?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。