我在将对象数组转换为键值对数组时遇到问题, 具有键和值对象的泛型类型。这是一个最小的例子。
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
答案 0 :(得分:2)
你需要一个阵列吗?您可以使用List
执行以下操作:
public static void main(String[] args) {
array = new ArrayList<Map.Entry<Integer, Integer>>();
}
private static List<Map.Entry<Integer, Integer>> array;
或者,您可以实例化非泛型类型,并转换为泛型类型:
public static void main(String[] args) {
array = (Map.Entry<Integer, Integer>[])new Map.Entry[1];
}
private static Map.Entry<Integer, Integer>[] array;
但是,这会给你警告,通常不是首选。
答案 1 :(得分:0)
您无法将Object
投射到Map
。你想做什么?