好的,所以我远离专家开发人员,因为你很快就会发现,但是在将代码克隆到我的电脑时我遇到了这个奇怪的问题。我正在开发一个Android应用程序,我在bitbucket上使用git存储库...我的问题是我的一个类实现了一个接口,其中包含几个使用@Override注释的必需方法。现在我也在使用mac和pc,每当我必须重新进入我的电脑工作区时(这比你想象的更频繁)我得到一个错误,说明重写方法“必须覆盖超类方法”和建议我删除它们。根据我的理解,它们是最重要的方法,并且在我的macbook上做得很好但是当我切换到我的电脑时,每次都要删除@Override注释,以便eclipse没有一个hissyfit。
有谁知道为什么会这样?
如果有帮助,我正在实现的接口是TextWatcher,受影响的方法是'afterTextChanged','beforeTextChanged'和'onTextChanged'。不确定是否有帮助,但感谢您的帮助。
答案 0 :(得分:3)
我偶尔会在工作中遇到这个问题。转到项目的属性,然后转到Java Compiler并将编译器合规性级别更改为1.6。这就是我设定的。
我认为该设置必须是工作空间特定的,因为我无法将其保存在源代码管理中。
编辑:此外,项目的Android上下文菜单具有“修复项目属性”,这也可能有所帮助。我不确定它是否符合我上面提到的修复,我不经常使用此选项。
答案 1 :(得分:2)
在Java 5和Java 6之间已经对@Override的规范进行了更改。在Java 6中,可以将@Override注释添加到实现Java 5中不允许的接口方法的方法中。
因此,请检查项目的编译器设置,因为您在一台计算机上使用Java 1.5进行编译,而在另一台计算机上使用Java 6进行编译。