私は、クラスシミュレーター、駅、電車、ルート、乗客を使って鉄道シミュレーターを構築しています。ルートオブジェクトをパラメータとしてtrainオブジェクトに渡すことに問題があります-それはnullとして表示され続けます。問題を説明するための最良の方法として、コードを含めました。
import java.util.ArrayList;
public class Simulator {
int numStations;
Route route1;
ArrayList<Station> stations;
ArrayList<Train> trains;
Route[] routes;
public static void main(String[] args) {
//set up network
Simulator sim = new Simulator();
ArrayList<Station> stations = new ArrayList<Station>();
stations = sim.generateStations();
Route[] routes;
routes = sim.generateRoutes(stations);
System.out.println("Route array " + routes);
ArrayList<Train> trains = new ArrayList<Train>();
trains = sim.generateTrains(routes);
//start simulator
sim.generatePassengers(stations);
Train currentTrain = trains.get(0);
System.out.println("current train " + currentTrain);
//route null here
System.out.println("Route of current train " + currentTrain.route);
}
public Route[] generateRoutes(ArrayList<Station> stations){
//initialise routes between stations
Station[] stationList1 = {stations.get(0), stations.get(1), stations.get(2), stations.get(3), stations.get(4), stations.get(5)};
int[] stationDist1 = {200,100,200,300,200,300};
Route route1 = new Route(true, stationList1, stationDist1);
System.out.println("route1 " + route1);
//make list of all routes
Route[] routeList;
routeList = new Route[1];
routeList[0] = route1;
return routeList;
}
public ArrayList<Train> generateTrains(Route[] routes){
//initialise trains
ArrayList<Train> trainList = new ArrayList<Train>();
trainList.add(new Train(routes[0], 100, 0, true, 5));
trainList.add(new Train(routes[0], 100, 4, false, 10));
System.out.println("first train in list " + trainList.get(0));
System.out.println("first route in array " + routes[0]);
//route is null here
System.out.println("route of first train " + (trainList.get(0)).route);
return trainList;
}
}
これが私の出力です:
route1 Route @ addbf1
ルート配列[LRoute;@42e816
配列Route@addbf1のRoute1
リストの最初の列車Train@190d11
配列Route@addbf1の最初のルート
最初の列車のルートnull
現在の電車Train@190d11
現在の列車のルートはnull
誰かが私がどこで間違っているのか説明できますか?
編集:列車クラス宣言:
public class Train {
Route route;
int capacity;
int recentLoc;
boolean forwards;
boolean atStation;
int speed;
Train currentTrain;
int timeAtStation;
//train constructor
public Train(Route r, int c, int i, boolean f, int s){
r = route;
c = capacity;
i = recentLoc;
f = forwards;
s = speed;
atStation = true;
timeAtStation = 0;
}