Java泛型代码在Eclipse中编译,但不在命令行中编译
我知道过去有一些关于在Eclipse中编译但不能在命令行中编译的问题,但是我还无法找到解决问题的答案。
特别是,我认为我可以设置eclipse以使用我的系统编译器,但这仍然不能解决问题。
我目前正在检查以下内容:“首选项-> Java->已安装的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中却收到此错误:
无与伦比的类型:T和OtherEnum
我在使用Java
1.6变体(1.6.0_26和1.6.0_16)的两个系统上进行了尝试。一个是Mac,另一个是Linux。它们都给出相同的错误,而eclipse毫无问题地在编译。
所以:
-
如何确定正在使用哪个编译器eclipse?
-
这里甚至有什么问题?
谢谢!
-
独立的编译器…使用==会强制执行更严格的编译时间检查,因此在CL中,它强制执行类型比较和错误处理。在Eclipse中,您可以管理编译时的设置并放宽限制。
您可以尝试Enum.equals(),它可能不会强制执行这种严格的编译时类型比较。只是一个想法。
-
Java泛型可在Eclipse中编译,但不能在javac中编译
2021-01-30 关注 0 浏览90 1答案
-
Java CRTP和通配符:代码在Eclipse中编译,但不能在`javac`中编译
2021-01-30 关注 0 浏览95 1答案
-
泛型可以在Eclipse中编译和运行,但不能在javac中编译
2021-01-30 关注 0 浏览67 1答案
-
在命令行中使用程序包编译Java代码时收到错误消息?
2021-01-30 关注 0 浏览236 1答案
-
使用Java中的命令行编译多个软件包
2021-01-31 关注 0 浏览104 1答案
-
使用JavaFX 2.0编译代码(使用命令行)
2021-01-30 关注 0 浏览95 1答案
-
sed命令在命令行上运行,但不在perl脚本中
2021-02-01 关注 0 浏览119 1答案
-
命令行Arduino编译和上传?
2021-02-01 关注 0 浏览64 1答案
-
从OS X命令行编译和链接Swift加Objective C代码
2021-01-31 关注 0 浏览98 1答案
-
如何从命令行编译Visual Studio项目?
2021-01-29 关注 0 浏览70 1答案