Что-то
slonopotamus не написал, но довольно прикольный и непонятный глюк (это он его нашёл).
Берём код:
import java.util.Arrays;
import java.util.List;
public class TestListOfListGenerics {
public static void main(String[] args) {
List<List<?>> list = Arrays.asList((List<?>) Arrays.asList());
}
}
( Скомпилируется или нет? )Немного меняем его (просто интродьюсим переменную):
import java.util.Arrays;
import java.util.List;
public class TestListOfListGenerics {
public static void main(String[] args) {
List<?> empty = Arrays.asList();
List<List<?>> list = Arrays.asList(empty);
}
}
( Скомпилируется или нет? )Вопрос, почему так?
upd Оказалось не столько глюком Jаva сколько глюком IDEA.
upd
unbe сообщает, что компилироваться будет и вот так:
List<List<?>> list = Arrays.<List<?>>asList((List<?>) Arrays.asList());
IDEA говорит, что указание типа не нужно и предлагает убрать его.