我是Java的新手,我正在构建一个项目,试图解析与用户交互的数据。 感到困惑的是,我解析的数据仍然保留在解析方法中,我不知道如何正确地创建对象并使用它。 我有三个类ethicalengine,场景,audit来处理数据。 我会让它尽可能的简单,任何帮助都是高度赞赏的。
我以前犯过这个错误如何使用ArrayList setter加载对象
但我仍然感到困惑,因为引用越来越复杂。
这里是我的主要类EthicalEngine的一部分,用于加载数据和用户交互。private Audit audit = new Audit();
private Scenario scenario = new Scenario();
private ArrayList scenarios = new ArrayList();
private ArrayList passengers = new ArrayList();
private ArrayList pedestrians = new ArrayList();
public void loadCsv() throws IOException {
// detail of parsing data to program
try {
//parsing data and save it to the proper ArrayList
} else {
lineCount++;
throw new InvalidDataFormatException();
}
} catch (InvalidDataFormatException e) {
System.out.println("WARNING: invalid data format in config file in line " + lineCount);
}
}
// add the last round data
// parsing data like this pattern
scenario.setPassengers(passengers);
scenario.setPedestrians(pedestrians);
scenarios.add(scenario);
scenario.setPassengers(passengers);
scenario.setPedestrians(pedestrians);
// use the audit object in the field area
// trying to construct a new object, but failed
audit = new Audit(scenarios);
//data only survive here!!
return;
} catch (FileNotFoundException e) {
System.out.println("ERROR: could not find config file.");
}
}
public void interactConfig () throws IOException {
//cannot get the loading data
ArrayList scenarios = audit.getScenarios();
ArrayList passengers = new ArrayList();
ArrayList pedestrians = new ArrayList();
do {
for (Scenario scenario : scenarios) {
audit.setAuditType("User Audit");
passengers = scenario.getPassengers();
pedestrians = scenario.getPedestrians();
System.out.println(scenario.toString());
//some interaction with the Scenario and the Scanner class
System.out.println("Would you like to continue? (yes/no)");
playAgain = in.nextLine();
} while (playAgain.equals("yes"));
}
以下是我的Audit类的一部分:public class Audit {
/**
* default constructor
*/
public Audit() {
}
/**
* The constructor to get the ArrayList
* @param ArrayList
*/
public Audit(ArrayList scenarios) {
this.scenarios = scenarios;
}
以下是我的方案类的一部分:public class Scenario {
private Random random;
private ArrayList passengers = new ArrayList();
private ArrayList pedestrians = new ArrayList();
private boolean legalCrossing;
/**
* default constructor
*/
public Scenario() {
}
/**
* Construct the scenario objects
*
* @param passengers arrayList
* @param pedestrians arrayList
* @param legalCrossing boolean
*/
public Scenario(ArrayList passengers, ArrayList pedestrians, boolean legalCrossing) {
this.passengers = passengers;
this.pedestrians = pedestrians;
this.legalCrossing = legalCrossing;
}
/**
* The setter method to set the passenger arrayList
* @param ArrayList passengers
*/
public void setPassengers(ArrayList passengers) {
this.passengers = passengers;
}
/**
* The getter method to get the passengers arrayList
* @return ArrayList passengers
*/
public ArrayList getPassengers() {
return passengers;
}
/**
* The setter method to set the pedestrians arrayList
* @param ArrayList pedestrians
*/
public void setPedestrians(ArrayList pedestrians) {
this.pedestrians = pedestrians;
}
/**
* The getter method to get the pedestrian arrayList
* @return pedestrian arrayList
*/
public ArrayList getPedestrians() {
return pedestrians;
}