我正在尝试将DefaultListModel
内容复制到数组中。
以下行导致异常
testArray =(cGenIndicator [])indObjList.toArray();
void testCasting() {
DefaultListModel<cGenIndicator> indObjList;
indObjList = new DefaultListModel<cGenIndicator>();
indObjList.addElement(new cGenIndicator(null, null));
cGenIndicator[] testArray;
try {
// This line causses exception saying
// [Ljava.lang.Object; cannot be cast to [LIndicator.cGenIndicator;
testArray = (cGenIndicator[]) indObjList.toArray();
} catch(Exception e) {
test++;
}
test++;
}
最佳答案
DefaultListModel.toArray
返回Object[]
,并且Object[]
不能直接转换为cGenIndicator[]
。
您可以通过以下方式实现:
Object[] objectArray = defaultListModel.toArray();
int length = objectArray.length;
cGenIndicator[] testArray = new cGenIndicator[length];
System.arraycopy(objects, 0, testArray, 0, length);