【发布时间】:2011-02-14 14:30:40
【问题描述】:
不同的开发人员在我的团队中使用不同的 IDE。一位 Intellij Idea 用户编写了这样的代码
public class Bar<A> extends AbstractSet<Bar.Inner> {
class Inner {
}
@Override
public Iterator<Inner> iterator() {
return null;
}
@Override
public int size() {
return 0;
}
}
另一个(eclipse用户)说它只能用替换编译
public Iterator<Inner> iterator() {
到
public Iterator<Bar.Inner> iterator() {
或
extends AbstractSet<Bar.Inner>
到
extends AbstractSet<Bar<A>.Inner>
extends AbstractSet<Bar<?>.Inner>//other variant
什么是正确的编译器行为?我在哪里可以获得此类问题的列表?
其他信息
日食:
- 版本:Helios Service Release 1
- 构建:20100917-0705
- jdk:1.6.0_23(安装在电脑上)
想法:
- 版本:10.0.2
- 构建:103.72
- jdk:1.6.0_21(通过帮助 -> 关于)
UPD 是我的失败。 Idea 会报告它,但仅限于应用程序构建。但是,我认为,这也是 Idea 的错误。
【问题讨论】:
-
想知道他们是否使用相同的 JDK?是否有可能使用 openJDK,其他 Sun?只是我的 2%。
-
@Nishant,他们使用 Sun JDK。但可能版本不同。我应该检查一下。
-
@Nishant,他们使用 Sun JDK。但不同的版本(更新后)。
-
在 Eclipse 中,
Window > Preferences > Java > Installed JREs查看是否指向正确的 JDK 目录,即 1.6.0_23 ?还要查看他们的编译器级别是否设置为正确的版本,即 1.6。在 Eclipse 中可以从Window > Preferences > Java > compiler看到它。 1.6.0_23 vs 1.6.0_21 应该不会有这么大的变化。 IDE 不一定使用已安装的 JDK。 -
@Nishant,感谢您提供有关 Eclipse 的信息。 Eclipse 使用已安装的 JDK。编译器合规级别设置为 1.6。
标签: java eclipse intellij-idea