Java注解
2021/9/11 20:05:38
本文主要是介绍Java注解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.注解简介
Java5版本之后可以在源码中嵌入一些补充信息,这些补充信息即为“注解” 。
注解可用“元数据”描述,是一种描述数据的数据。
注解以@符号开头(方法重写的@Override),同Class和Interface一样,注解也属于一种类型。
注解不改变程序的运行结果,也不影响程序运行的性能。有些注解可以在编译时给用户提示或警告,有些注解可以在运行时读写字节码文件信息。
- Annotation:注解
- Comment:注释
注解常见的作用有以下几种:
- 生成帮助文档。这是最常见的,也是 Java 最早提供的注解。常用的有 @see、@param 和 @return 等;
- 跟踪代码依赖性,实现替代配置文件功能。比较常见的是 Spring 2.5 开始的基于注解配置。作用就是减少配置。现在的框架基本都使用了这种配置来减少配置文件的数量;
- 在编译时进行格式检查。如把 @Override 注解放在方法前,如果这个方法并不是重写了父类方法,则编译时就能检查出。
2.@Override
@Override注解用来指定方法重写,只能修饰方法且只能用于方法重写,不可修饰其他元素。
下例中第一个toString为方法重载,第二个为方法重写
class Test{ public String toString(String s) { return s; } @Override public String toString() { return super.toString(); }
}
3.@Deprecated
@Deprecated可以用来注解类、接口、成员方法和成员变量等,表示某个元素已过时。其他程序使用已过时元素时编译器会给出警告。
Java9为@Depercated注解增加了两个属性forRemoval和since
- firRemoval:boolean类型属性指定该API在将来是否会被删除
- since:String类型属性指定该API从哪个版本被标记为过时。
eg.@Deprecated(since = "1.2", forRemoval = true)
使用的已过时元素会被画上删除线test.toString()
4.@SuppressWarnings
@SuppressWarnings 注解指示被该注解修饰的程序元素(以及该程序元素中的所有子元素)取消显示指定的编译器警告,且会一直作用于该程序元素的所有子元素。
主要作用在于取消一些编译器产生的警告对代码左侧行列的遮挡(影响断点调试),需配合关键字使用。
eg.@SuppressWarnings({"deprecation"})
忽略过时警告
5.@SafeVarargs
不太理解;详见: https://blog.csdn.net/qq_40341361/article/details/80433006
注:@SafeVarargs注解不适用于非 static 或非 final 声明的方法,对于未声明为 static 或 final 的方法,如果要抑制 unchecked 警告,可以使用 @SuppressWarnings 注解。
6.@FunctionalInterface
@FunctionalInterface 就是用来指定某个接口必须是函数式接口,所以 @FunInterface 只能修饰接口,不能修饰其它程序元素。
Lambda 表达式中,如果接口中只有一个抽象方法(可以包含多个默认方法或多个 static 方法),那么该接口就是函数式接口。
- 函数式接口就是为 Java 8 的 Lambda 表达式准备的,Java 8 允许使用 Lambda 表达式创建函数式接口的实例,因此 Java 8 专门增加了 @FunctionalInterface。
这篇关于Java注解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-11有哪些好用的家政团队管理工具?
- 2025-01-11营销人必看的GTM五个指标
- 2025-01-11办公软件在直播电商前期筹划中的应用与推荐
- 2025-01-11提升组织效率:上级管理者如何优化跨部门任务分配
- 2025-01-11酒店精细化运营背后的协同工具支持
- 2025-01-11跨境电商选品全攻略:工具使用、市场数据与选品策略
- 2025-01-11数据驱动酒店管理:在线工具的核心价值解析
- 2025-01-11cursor试用出现:Too many free trial accounts used on this machine 的解决方法
- 2025-01-11百万架构师第十四课:源码分析:Spring 源码分析:深入分析IOC那些鲜为人知的细节|JavaGuide
- 2025-01-11不得不了解的高效AI办公工具API