page contents

Java注解教程——Java注解使用及原理解析!

本文讲述了Java注解教程——Java注解使用及原理解析!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

attachments-2023-05-xfeP7MgF646ac6dcca193.jpg本文讲述了Java注解教程——Java注解使用及原理解析!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

Java注解实际上只是对包、类、方法、成员变量等java程序进行标注。Java注解自身没有业务逻辑,如要实现注解相应的业务逻辑功能必须要由另外的处理类来实现。其基本原理就是通过java反射机制,获取这些java程序的包、类、方法、成员变量的注解,然后加以判断并实现相应的业务功能逻辑。

1.注解出现的背景

以前XML是各大框架的青睐者,它以松耦合的方式完成了框架中几乎所有的配置,但是随着项目越来越庞大,XML的内容也越来越复杂,维护成本变高。

于是就有人提出来一种标记式高耦合的配置方式,即注解。方法、类、字段属性上都可以注解,反正几乎需要配置的地方都可以进行注解。

注解可以提供更大的便捷性,易于维护修改,但耦合度高,而 XML 相对于注解则是相反的。追求低耦合就要抛弃高效率,追求高效率必然会遇到耦合。

2.Java注解应用

在看注解的用途之前,有必要简单的介绍下XML和注解区别,注解:是一种分散式的元数据,与源代码紧绑定;xml:是一种集中式的元数据,与源代码无绑定。

注解的应用包括:一、生成文档,通过代码里标识的元数据生成javadoc文档。二、编译检查,通过代码里标识的元数据让编译器在编译期间进行检查验证。三、编译时动态处理,编译时通过代码里标识的元数据动态处理,例如动态生成代码。四、运行时动态处理,运行时通过代码里标识的元数据动态处理,例如使用反射注入实例。

3.Java注解分类

Java注解的分类包括:

一、Java自带的标准注解,包括@Override、@Deprecated、@SuppressWarnings等,使用这些注解后编译器就会进行检查。

二、Java元注解,元注解是用于定义注解的注解,包括@Retention、@Target、@Inherited、@Documented、@Repeatable 等。元注解也是Java自带的标准注解,只不过用于修饰注解,比较特殊。

三、自定义注解,自定义注解用户可以根据自己的需求定义注解。

3.1Java自带的标准注解

JDK 自带的以下标准注解:

@Override:对覆盖超类中的方法进行标注,如果被标注的方法并没有实际覆盖超类中的方法,编译器会发错错误警告。

@Deprecated:对不鼓励使用或已过时的方法进行标注,当开发人员对这些被标注的方法进行调用时,会显示该方法已过时的提示信息。

@SuppressWarnings:选择性的取消特定代码段中的警告。

@FunctionalInterface :用于指示被修饰的接口是函数式接口,在 JDK8 引入。

attachments-2023-05-OXjnAG7W646ac634678c5.jpgattachments-2023-05-Bcw6ZOMk646ac645c5e00.jpg

@SuppressWarnings 注解的常见参数值的简单说明:

@SuppressWarnings("unchecked")//执行了未检查的转换时的警告,例如当使用集合时没有用泛型 (Generics) 来指定集合保存的类型。

@SuppressWarnings("unused")  //未使用的变量。

@SuppressWarnings("resource")  //有泛型未指定类型。

@SuppressWarnings("path")  //在类路径、源文件路径等中有不存在的路径时的警告。

@SuppressWarnings("deprecation")  //使用了不赞成使用的类或方法时的警告。

@SuppressWarnings("fallthrough") //当 Switch 程序块直接通往下一种情况而没有 break; 时的警告。

@SuppressWarnings("serial")//某类实现Serializable(序列化), 但没有定义 serialVersionUID 时的警告。

@SuppressWarnings("rawtypes") //没有传递带有泛型的参数。

@SuppressWarnings("finally") //任何 finally 子句不能正常完成时的警告。

@SuppressWarnings("try") // 没有catch时的警告。

@SuppressWarnings("all") //所有类型的警告。

attachments-2023-05-f720NHTv646ac6800184b.jpg

3.2Java元注解

元注解是java API提供的,是用于修饰注解的注解,通常用在注解的定义上:

@Retention:用来声明注解的保留策略。

@Targe:标注所修饰的对象范围。

@Inherited:表示注解可以被继承。

@Documented:表示注解应该被JavaDoc工具记录。

@Repeatable:JDK 8 新增的注解,允许一个注解在同一声明类型(类、属性或方法)中多次使用。

更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。

想高效系统的学习Java编程语言,推荐大家关注一个微信公众号:Java圈子。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Java入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2023-03-2AoKIjPQ64014b4ad30a3.jpg

  • 发表于 2023-05-22 09:35
  • 阅读 ( 136 )
  • 分类:Java开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
王昭君
王昭君

209 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1316 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章