3

好的,所以我远非专家级开发人员,你很快就会发现,但我在将代码克隆到我的电脑时遇到了这个奇怪的问题。我正在开发一个 Android 应用程序,我在 bitbucket 上使用了一个 git 存储库......我的问题是我的一个类实现了一个接口,其中包含几个使用 @Override 注释的必需方法。现在我也在使用 mac 和 pc,每当我必须重新克隆到我的 pc 工作区时(这比你想象的更频繁),我会收到一个错误,指出覆盖方法“必须覆盖超类方法”和建议我删除它们。据我了解,它们是压倒一切的方法,并且在我的 macbook 上做得很好,但是当我切换到我的电脑时,每次都必须删除 @Override 注释,以使 eclipse 没有 hissyfit。

有谁知道为什么会这样?

如果有帮助,我正在实现的接口是 TextWatcher,受影响的方法是“afterTextChanged”、“beforeTextChanged”和“onTextChanged”。不确定这是否有帮助,但提前感谢您的帮助。

4

2 回答 2

3

我在工作中偶尔会遇到这个问题。转到项目的属性,然后转到 Java Compiler 并将编译器合规级别更改为 1.6。这就是我设置的。

我认为该设置必须是特定于工作区的,因为我也无法将其保存在源代码管理中。

编辑:此外,项目的 Android 上下文菜单具有“修复项目属性”,这也可能有所帮助。我不确定它是否能解决我上面提到的问题,我不经常使用这个选项。

于 2012-07-08T05:54:49.243 回答
2

在 Java 5 和 Java 6 之间,@Override 的规范已经发生了变化。在 Java 6 中,可以将 @Override 注释添加到实现 Java 5 中不允许的接口方法的方法。

因此,请检查项目的编译器设置,因为您在一台机器上使用 Java 1.5 进行编译,而在另一台机器上使用 Java 6 进行编译。

于 2012-07-08T05:55:44.703 回答