相信有过编程经验的人都见过注解这种东西,也许像我一样,会用、熟练之后,也就一直放那不管了。但是有没有一天突然想到,注解是个什么东西,如果你想到了,那么恭喜你,恭喜你想到了。不论多么复杂的框架、多么复杂的代码、无非是封装、继承、反射、泛型。但是,注解这种东西,是完全独立于java正常体系之外的东西,所以今天在这里一探究竟。

1.java常用注解:@Override(覆盖,覆写),@Deprecated(表明该方法已经过时,在调用的时候会有警告),@Suppvisewarnings(忽略某些警告)

2.自定义注解:

@Inherited//表示该注解注解的类,被继承的时候,子类也有了该注解(只能作用于类,不能作用于方法和接口)
@Retention(RetentionPolicy.SOURCE)//注解的生命周期,可以是源码期,编译期,运行期
@Target({ElementType.TYPE,ElementType.METHOD})//注解的作用域,可以是类,也可以是方法
@Documented//表示生成Javadoc的时候会包含注解信息
public @interface zhujie {String desc();//注解的内容,实际上是一个变量,其类型只能是基本类型和String、Enumeration等常见类型int age() default 18;
}

3.解析注解

public class Jiexi {public static void main(String[] args){try {//先通过反射获取到java类Class a=Class.forName("A");//该方法来查看某类是否有注解,参数是定义的注解类的Class对象boolean isExist=a.isAnnotationPresent(zhujie.class);if(isExist){System.out.println("我是类上的注解");}//用反射方法获取该类的所有方法,并且查看是否含有某注解Method[]methods=a.getMethods();for (int i = 0; i < methods.length; i++) {Method method=methods[i];boolean isExist2=method.isAnnotationPresent(zhujie.class);if(isExist2){System.out.println("我是方法上的注解");}//也可以获取某方法上面的所有注解,一个一个遍历找到是否包含自己要找的注解Annotation annotation[]=method.getAnnotations();for (Annotation annotation1 : annotation) {if(annotation1 instanceof zhujie){System.out.println("我是方法上的注解!");}}}} catch (ClassNotFoundException e) {e.printStackTrace();}}
}

转载于:https://www.cnblogs.com/xiaoao/p/10574269.html

全面解析java注解相关推荐

  1. 框架基础——全面解析Java注解

    阅读目录 一.概念 二.Java中的常见注解 三.注解的分类 四.自定义注解 五.注解的项目实战 六.注解总结 为什么学习注解? 学习注解有什么好处? 学完能做什么? 答:1. 能够读懂别人写的代码, ...

  2. 【Java 注解】自定义注解 ( 注解解析 )

    文章目录 一.定义注解 二.使用注解 三.解析注解 四.通过注解对象获取注解属性的原理 在 [Java 注解]自定义注解 ( 注解属性定义与赋值 ) 博客中讲解了 注解属性 ; 在 [Java 注解] ...

  3. Java注解解析-搭建自己的注解处理器(CLASS注解使用篇)

    该文章是继Java注解解析-基础+运行时注解(RUNTIME)之后,使用注解处理器处理CLASS注解的文章.通过完整的Demo例子介绍整个注解处理器的搭建流程以及注意事项,你将知道如何去搭建自己的注解 ...

  4. Java注解原理解析 转载至:梅仁

    一.注解(Annotation)简介 用武之地: 我们不拿定义做解释,因为相信看定义是非常枯燥的.注解用在哪?简单一句话就是,注解几乎是作为简化配置使用的技术.注解是jdk1.5以后出现的,它被广泛的 ...

  5. (原创)JAVA注解应用——实现属性的自动检测

    一.什么是注解 Annotation(注解)是JDK5.0及以后版本引入的新特性.它可以用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查.注解是以'@注解名'在代码中存在的,根据注解参数的个数 ...

  6. 简述java中的注释以及用法_怎样理解 Java 注解和运用注解编程?

    正好最近在公众号(BetterAndroid)发了一篇关于注解的文章,贴在这里吧,希望对题主有帮助. 一.什么是注解 我们都知道在Java代码中使用注释是为了提升代码的可读性,也就是说,注释是给人看的 ...

  7. 深入理解 Java 注解

    本文内容基于 JDK8.注解是 JDK5 引入的,后续 JDK 版本扩展了一些内容,本文中没有明确指明版本的注解都是 JDK5 就已经支持的注解. :notebook: 本文已归档到:「blog」 : ...

  8. 【Java注解】注解基础

    笔记来源:IMOOC Java注解 注解的分类 按照运行机制分 源码注解:注解只在源码中存在,编译成 .class 文件就不存在了 编译时注解:注解在源码和 .class 文件中都存在 运行时注解:在 ...

  9. 你真的会用java注解吗?

    "揭开java注解的神秘面纱" 介绍 想必大家在接触java,甚至部分工作几年的,对于类.方法.字段上的 @xxx 都有一种迷茫:这是啥玩意,它是怎么运行起来的? 别慌,这就是ja ...

最新文章

  1. 研究者设计了Fastball任务早期诊断阿尔茨海默病
  2. 程序员面试题精选100题(34)-数组中只出现一次的数字[算法]
  3. 动态规划和摩尔投票法
  4. python局部变量想作用于全局_python 局部和全局作用域
  5. load xml error什么意思_XML文件解析实践(DOM解析)
  6. VS2010开发如何在c#中使用Ctrl、Alt、Tab等全局组合快捷键
  7. 巨无霸Win8PE X64服务器维护专用,【13年4月4日】维护版win8pe【32位+64位+纯64位】(支持BIOS+EFI)...
  8. android放在上个元素的左边代码,控件悬浮在某个控件之上 Android五大布局方式——相对布局(RelativeLayout)属性详解...
  9. 角色和权限Hibernate实体映射配置
  10. Math类的三个方法比较: floor() ceil() round()
  11. AndroidStudio安卓原生开发_UI高级_自定义主题和样式---Android原生开发工作笔记129
  12. FastAPI + Vue 前后端分离 接口自动化测试工具 apiAutoTestWeb
  13. 区分PC端与移动端代码,涵盖C#、JS、JQuery、webconfig
  14. mark点Z3学习资料整理
  15. javascript---不可靠的“undefined”
  16. linux下部署selenium爬虫程序
  17. LDO与电压基准源的精度对比
  18. arm-linux-gcc踩坑1
  19. 这五个灵魂问题,解决BI新人80%的困惑
  20. 1.EKL在项目中担当的位置

热门文章

  1. mft文件记录属性头包括_NTFS 文件系统基础知识
  2. cnn识别mnist、Fashion-MNIST(pytorch)
  3. mint ui tabbar选中后怎么改变icon图标_UI全书(下)读后梳理:iPhone设计规范和Material Design规范...
  4. h3c怎么创建虚拟服务器,h3c 设置虚拟服务器
  5. 云存储服务器技术,​云存储技术构架-服务器运维
  6. 小程序promise封装post请求_微信小程序用promise封装请求
  7. VC6命令行编译工程方法
  8. P3159 [CQOI2012]交换棋子(费用流)
  9. 51单片机学习笔记(郭天祥版)(4)——练习、动态扫描、练习、数码管消影...
  10. [JZOJ5281]钦点题解--瞎搞+链表