基于this well loved question我理解@Override注释是一个很好的编码实践,因此我们知道我们实际上正在覆盖正确的方法。但是,除了编码练习之外,没有做到这一点的后果是什么? Java中是否存在需要注释的基础内容?
我问,因为我使用XJC从XSD文件生成Java ActiveMQ消息文件。但是,为了在不进行手工编辑的情况下添加“@Override”,我需要使用XJC提供的单独插件,在我的情况下非常difficult knowing the dependencies。主要目标是使用XJC和我的Ant build.xml在构建时重新生成Java消息文件,而无需任何手动编辑。
答案 0 :(得分:7)
Java运行时不需要它,它只是为了在编译时减少编码错误。
如果你正在生成代码,你可能会没有@Override注释,因为代码是生成的而不是手工编写的(所以在这个级别上人为错误的机会可能更少,例如错字)。 / p>
但是,如果将@Override方法放在生成的方法上,如果生成的代码不正确,则可以在编译时捕获。
答案 1 :(得分:1)
除了是一个好的练习并且在编译时突出遗留错误之外,它没有任何影响。
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Override {
}
<强> RetentionPolicy.SOURCE 强>