У меня возникли проблемы с литьем массива объектов в массив пар ключ-значение, с общими типами для объектов ключа и значения. Вот минимальный пример.Java Instantiate new Map.Entry-array
public class Main {
public static void main(String[] args) {
array = (Map.Entry<Integer, Integer>[]) new Object[1];
}
private static Map.Entry<Integer, Integer>[] array;
}
Изменение Map.Entry для класса (а не интерфейса) тоже не делает этого.
след Ошибка:
run:
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.util.Map$Entry;
at lab2.Main.main(Main.java:13)
Java Result: 1
Почему вы думаете, что 'new Object [1]' тип совместим с 'Map.Entry []'? * Конечно * новый ванильный 'Object []' массив нельзя отнести к чему-то более конкретному. Точно так же, как это не является законным: '(String) new Object();'. –