public Station[] init(){
Station s = new Station();
for (int i = 0; i < 5; i++) {
s.setId(""+i);
s.setName("people");
s.setFar("40.0");
a.add(s);
}
return (Station[])(a.toArray());
}
报错:Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object;
请问为什么会报这样的错误。正确的应该如何做?
Station s = new Station();
for (int i = 0; i < 5; i++) {
s.setId(""+i);
s.setName("people");
s.setFar("40.0");
a.add(s);
}
return (Station[])(a.toArray());
}
报错:Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object;
请问为什么会报这样的错误。正确的应该如何做?
return (Station[])(a.toArray());
这一行!
数组是不可以相互转换的,你如果需要,可以使用
System.arraycopy来完成。就本题而言,似乎没有必要这么处理。
并且你实际的数组中只有一个对象。 public Station[] init(){
Station[] stations = new Station[5];
Station s = null;
for (int i = 0; i < 5; i++) {
s = new Station();
s.setId(""+i);
s.setName("people");
s.setFar("40.0");
stations[i] = s;
}
return stations;
}