相关疑难解决方法(0)

为什么javac在@Override注释上失败

当我实现接口的方法时,Eclipse正在添加@Override注释.Eclipse似乎对此没有任何问题.我们Cruise Control的自动构建过程似乎对此没有任何问题.但是当我从命令行构建时,使用运行javac的ant,我收到此错误:

[javac] C:\path\project\src\com\us\MyClass.java:70: method does not override a method from its superclass
[javac]     @Override
[javac]      ^
[javac] 1 error
Run Code Online (Sandbox Code Playgroud)

Eclipse在Java 1.6下运行.Cruise Control正在运行Java 1.5.无论我使用哪个版本的Java,我的ant构建都会失败.

java annotations

53
推荐指数
2
解决办法
4万
查看次数

我可以强制显式使用 @Override 吗?

有没有办法强制使用@Override 注释?

只是为了澄清,我不是在问“我如何强制子类实现一个方法”(像这样):

public abstract class BaseClass {
    public abstract void foo();
}
Run Code Online (Sandbox Code Playgroud)

我专门询问这种情况:

public class AnnotatedSubclass extends BaseClass {
    @Override
    public void foo() {
        System.out.println("I have @Override.");
    }
}

public class NonAnnotatedSubclass extends BaseClass {
    public void foo() {
        System.out.println("I do not have @Override.");
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,即使NonAnnotatedSubclass没有明确的@Override注释,两者都可以编译。有没有办法让编译器在这种情况下抛出错误/警告NonAnnotatedSubclass

我问,因为有时当我扩展类时,我不小心覆盖了父方法,因为它们的名称与我要创建的名称相似(如.paint()在 Swing 中)。

java swing overriding

4
推荐指数
1
解决办法
751
查看次数

标签 统计

java ×2

annotations ×1

overriding ×1

swing ×1