gpt4 book ai didi

java - Java 库中缺少 @Override

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:15:16 27 4
gpt4 key购买 nike

这被认为是一种很好的做法

use @Override annotation on methods which are being overriden in subclass.

但为什么同样不适用于 Java 库附带的类。例如字符串类。它覆盖了 Object 类的方法,但不在这些方法上使用 @Override 注释。

这样做是为了保持与以前的 Java 版本(例如 1.4 等)的向后兼容性

谢谢

最佳答案

在 API 中,它不会为(该 API 的)用户提供太多东西。然而,当您实现一个方法,并且您“打算”覆盖父类(super class)的方法时,很容易错过本应匹配的方法签名。

在本例中为 @Override在编译时进行救援,当覆盖发生时,它将失败或发出警告。许多 IDE 也识别 @Override并在您编译之前为您提供足够的支持来标记和纠正这些情况。

所以 @Override本质上声明了您的意图,即此方法会覆盖某些内容。 API 的用户不会关心您的意图,只要它有效即可。

实际上,真正的原因可能是:Retention@Override注释设置为 SOURCE .这意味着 @Override标志在编译成类文件时被丢弃。

@Target(value=METHOD)
@Retention(value=SOURCE)
public @interface Override

关于java - Java 库中缺少 @Override,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30048408/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com