[英]JAVA can't add more than one object to an arrayList
我正在尝试添加多个停靠点(一个停靠站具有变量(“ Station stop”和int numberLiters”到具有此循环的路由以及它们各自的OS升数)。
private int askStation( ) {
Station po=null;
int id;
consola.println("Id Station?");
id = consola.readInt();
po=station.getStation(id);
if( (po==null)){
consola.println("Unknown Station" );
consola.readLine();
return 0;
}
consola.print( "How many litters ");
int nLiters = consola.readInt();
if (po.checksLiters(nLiters)==false)
consola.println("Invalid Quantity");
else {
//ADD STOP TO THE ROUTE
Stop s=new Stop(po,nLiters);
Route r=new Route(1);
r.addStop(s);
consola.println(r.toString());
}
consola.readLine();
consola.clear();
}
这个循环被执行了几次,但是只填充一次arrayList,我做了consola.println(i.toString());
还有一个for循环来打印数组中的数据,无论我运行该脚本多少次,它只会添加我键入的最后一个。 这是我的上课路线:
public class Route {
private int start;
private arrayList<Stop>stops=new arrayList <Stop>();
public Route(int start) {
this.start = start;
}
public void addStop( Stop s ){
stops.add(s);
}
public ArrayList <Stop> getStops(){
return stops;
}
我究竟做错了什么? 是添加方法吗? 或在AskStation方法循环中初始化对象?
Stop s=new Stop(po,nLiters);
Route r=new Route(1);
r.addStop(s);
您每次都会创建一条新路线,然后在新路线上添加一个停靠点,因此您将丢失旧停靠点。 为了避免这种情况,请将Route设置为方法之外的字段,而不要这样做
Route r = new Route();
也,
arrayList<Stop>
应该
ArrayList<Stop>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.