Dan*_*ana 3 java eclipse generics javac
我知道过去有几个问题是关于在eclipse中编译而不是在命令行中编译的东西,但我还没找到问题的答案.
特别是,我认为我能够设置eclipse使用我的系统编译器,但仍然没有解决问题.
我目前正在检查:'首选项 - > Java - >已安装的JRE'.
这只包含一个JRE,这是我的系统之一.
以下是问题的具体细节
我有一个java泛型类,它将Enum类型作为参数,如下所示:
public class MyClass<T extends Enum<T>>
Run Code Online (Sandbox Code Playgroud)
在类的某个地方,我将已知的枚举值与T的值进行比较.例如,让我们假设我有这个枚举:
public enum OtherEnum{
a,
b
}
Run Code Online (Sandbox Code Playgroud)
然后我测试:
protected void foo(T enumVal){
if(enumVal == OtherEnum.a){
// do something
}
else if(enumVal == OtherEnum.b){
// do something else
}
}
Run Code Online (Sandbox Code Playgroud)
这在eclipse中编译没有问题,但在命令行javac中我收到此错误:
无与伦比的类型:T和OtherEnum
我在两个使用java 1.6变体(1.6.0_26和1.6.0_16)的系统上尝试了这个.一个是Mac,另一个是linux.他们都给出了同样的错误,而eclipse正在编译而没有任何问题.
所以:
如何确定使用哪个编译器eclipse?
甚至这里的问题是什么?
谢谢!