以下产生ClassCastException,我不确定为什么。我知道,由于不变属性和协变量属性以及泛型不可靠但不理解为什么会生成RuntimeException的事实,泛型数组有点忌讳。
...
Integer[] sap = (Integer[]) iterableToArray(path.pathTo(w));
}
private <T> T[] iterableToArray(Iterable<T> it){
ArrayList<T> list = new ArrayList<>();
for(T o : it)
list.add(o);
return (T[]) list.toArray();
}