Привет. Продолжаем сталкиваться с ошибками компилятора и его расхождением с поведением штатных анализаторов IDE. Имеем следующий код:
public class X { public static <T> T getValue(String key) { return t1; } public void testGenerics(String key) { int i = getValue(key); } }
Вопрос: компилируется ли код?
Ответ: должен, но не будет.
Фишка в том, в компиляторе баг: при выведении типов не работает autounboxing, и это печально. Баг поправили, но только в Java 7. Пруф.
P.S. Смех опять же в том, что та же популярная IDE из предыдущего поста ошибку не показывает. Эх…
P.P.S. текст ошибки: Ошибка будет следующей:
type parameters of T cannot be determined; no unique maximal instance exists for type variable T with upper bounds int,java.lang.Object
ссылка на оригинал статьи http://habrahabr.ru/post/157679/
Добавить комментарий