自 JDK5 推出以来,注解已成为Java生态系统不可缺少的一部分。
@Override
覆盖方法的实现或为抽象方法提供实现的能力是任何面向对象(OO)语言的核心。由于Java是OO语言,具有许多常见的面向对象的抽象机制,所以在非终极超类定义的非最终方法或接口中的任何方法(接口方法不能是最终的)都可以被子类覆盖。虽然开始时覆盖方法看起来很简单,但是如果执行不正确,则可能会引入许多微小的bug。因此,我们也可以使用此注解来确保子类方法实际上也覆盖超类中的非最终具体方法或抽象方法。@Override注解不仅不限于超类中的具体或抽象方法,而且还可用于确保接口的方法也被覆盖
@FunctionalInterface
随着JDK 8中lambda表达式的引入,函数式接口在Java中变得越来越流行。这些特殊类型的接口可以用lambda表达式、方法引用或构造函数引用代替。与@Override注解类似,Java编译器提供了@FunctionalInterface注解以确保接口确实是函数式接口。如果我们错误地将接口定义为非函数接口并用@FunctionalInterface注解了错误的接口,则Java编译器会发出错误。使用这个注解,我们可以确保我们不会错误地创建原本打算用作函数式接口的非函数式接口。需要注意的是,即使在@FunctionalInterface注解不存在的情况下,接口也可以用作函数式接口(可以替代为lambdas,方法引用和构造函数引用),正如我们前面的示例中所见的那样。这类似于@Override注解,即一个方法是可以被覆盖的,即使它不包含@Override注解。在这两种情况下,注解都是允许编译器执行期望意图的可选技术。
@SuppressWarnings
警告是所有编译器的重要组成部分,为开发人员提供的反馈——可能危险的行为或在未来的编译器版本中可能会出现的错误。例如,在Java中使用泛型类型而没有其关联的正式泛型参数(称为原始类型)会导致警告,就像使用不推荐使用的代码一样。虽然这些警告很重要,但它们可能并不总是适用甚至并不总是正确的。例如,可能会有对不安全的类型转换发生警告的情况,但是基于使用它的上下文,我们可以保证它是安全的。
@SafeVarargs
可变参数在Java中是一种很有用的技术手段,但在与泛型参数一起使用时,它们也可能会导致一些严重的问题。由于泛型在Java中是非特定的,所以具有泛型类型的变量的实际(实现)类型不能在运行时被断定。由于无法做出此判断,因此变量可能会存储非其实际类型的引用到类型。
@Deprecated
在开发代码时,有时候代码会变得过时和不应该再被使用。在这些情况下,通常会有个替补的更适合手头的任务,且虽然现存的对过时代码的调用可能会保留,但是所有新的调用都应该使用替换方法。这个过时的代码被称为不推荐使用的代码。在某些紧急情况下,不建议使用的代码可能会被删除,应该在未来的框架或库版本从其代码库中删除弃用的代码之前立即转换为替换代码。
网友评论
0条评论发表

- 盘盘龙龙
- 搞笑
- 大白猫手绘
- 本地上传





































































点击或拖拽图片到此区域即可上传
仅限.jpg,.jpeg,.png,.gif
最新评论
推荐文章
-
大好河山
大好河山
老韩 11121阅读 4天前
-
建水紫陶 传承手艺
建水紫陶为国家级非物质文化遗产,中国四大名陶之一。建水紫陶是云南省建水县的汉族传统手工艺品,始于元末明初。用建水近郊五色...
怕瓦落地 24211阅读 4天前
-
世博园新景
世博园新景观步道,大约三公里,可从世博园步行至金殿景区,一路鲜花伴我行,人在景中走心随花儿飞。
小白鸽 5344阅读 4天前
-
放养的多肉锦晃星暗香浮动繁花惊艳阳台一隅你爱了么?
毛哥 16249阅读 5天前
-
云南建水“晚霞夕照古桥”
“跟着边凡看世界” 中国是一个桥梁大国,各种各样神奇的桥梁横卧在大山大河之间,每一座桥梁背后都有...
边凡 5300阅读 5天前
-
“九夏芙蓉”开大观(五)
2022年7月6日摄于昆明大观公园
铜钟 3678阅读 6天前
最新文章

彩龙
Copyright © 2008-2022 彩龙社区 版权所有 All Rights Reserved.
免责声明: 本网不承担任何由内容提供商提供的信息所引起的争议和法律责任。
经营许可证编号:滇B2-20090009-7
网友评论
0条评论发表