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;
请问为什么会报这样的错误。正确的应该如何做?

解决方案 »

  1.   

    错误应该出在
    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;
        }