Я знаю, что в прошлом было несколько вопросов относительно вещей, которые компилируются в затмении, но не в командной строке, но я пока не смог найти ответ на свою проблему.
В частности, я думаю, что ябыл в состоянии настроить 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 компилируется без проблем.
Итак:
Как мне убедиться, какое затмение компилятора использует?
В чем тут проблема?
Спасибо!