我知道过去有几个关于在Eclipse中编译但在命令行中不能编译的问题,但我还没有找到解决我的问题的答案。
特别是,我认为我能够设置eclipse使用我的系统编译器,但这仍然没有解决问题。
我目前正在检查:'首选项 -> Java -> 已安装的JRE'。
这里只包含一个JRE,即我的系统JRE。
以下是问题的具体信息
我有一个Java泛型类,它以Enum类型作为参数,如下所示:
public class MyClass<T extends Enum<T>>
在类的某个地方,我将一个已知的枚举值与T的值进行比较。因此,例如,假设我有以下枚举:
public enum OtherEnum{
a,
b
}
然后我进行测试:
protected void foo(T enumVal){
if(enumVal == OtherEnum.a){
// do something
}
else if(enumVal == OtherEnum.b){
// do something else
}
}
在Eclipse中编译没有问题,但在命令行javac中出现以下错误:
incomparable types: T and OtherEnum
我尝试在两个使用Java 1.6(1.6.0_26和1.6.0_16)变体的系统上进行操作。一个是Mac,另一个是Linux。它们都给出了同样的错误,而Eclipse则可以顺利编译。
所以:
如何确定Eclipse正在使用哪个编译器?
这里到底是什么问题?
谢谢!