从另一种方法中读出来

时间:2016-12-21 10:24:55

标签: java

所以我得到了这段代码:

public static ArrayList<Vehicle> readVehicles() throws IOException {

    ArrayList<Vehicle> out = new ArrayList<Vehicle>();
    JSONParser parser = new JSONParser();
    JSONObject jsonObject = new JSONObject();

    try {
        jsonObject = (JSONObject) parser.parse(new FileReader("Vehicles.json"));
    } catch (ParseException e) {
        e.printStackTrace();
    }

    JSONArray jsonvehicles = (JSONArray) jsonObject.get("Vehicles");
    Iterator i = jsonvehicles.iterator();

    while (i.hasNext()) {
        JSONObject v = (JSONObject) i.next();
        /*
         * Engines(); Chassis(); Tires();
         */
        // out.add(new Vehicle(...);
    }
    return out;
}

public static ArrayList<Engine> readEngines() throws IOException {
    ArrayList<Engine> out = new ArrayList<Engine>();
    JSONParser parser = new JSONParser();
    JSONObject jsonObject = new JSONObject();

    try {
        jsonObject = (JSONObject) parser.parse(new FileReader("Engines.json"));
    } catch (ParseException e) {
        e.printStackTrace();
    }

    JSONArray jsonengines = (JSONArray) jsonObject.get("Engines");
    Iterator i = jsonengines.iterator();

    while (i.hasNext()) {
        JSONObject v = (JSONObject) i.next();
        String name = (String) v.get("name");
        int price = (int) v.get("price");
        int quality = (int) v.get("quality");
        int maxSpeed = (int) v.get("maxSpeed");
        int maxAccelaration = (int) v.get("maxAcceleration");

        out.add(new Engine(name, price, quality, maxSpeed, maxAccelaration));
    }
    return out;
}

等等,关于tires()和底盘。

我的问题是,如何将例如引擎的输出输入车辆?

看,车辆由发动机,底盘和轮胎组成。并且引擎作为属性质量,名称,价格等。我如何将其添加到新车?

可能已经有人问过,但我真的不知道怎么问这个(母语不是英语)。对不起,如果我听起来很模糊,但说实话,我不确定我在问什么。

1 个答案:

答案 0 :(得分:0)

正如Kevin Esche所说,你可以通过这样的方式来做(例如):

  

Car.java类文件

private class Car{
    private Engine engine;
    private ArrayList<Tire> tires; 

    public void setEngine(Engine carEngine){
        this.engine = carEngine;
    }
    public Engine getEngine(){
        return this.engine;
    }
    public void addTire(Tire carTire){
        this.tires.add(carTire);
    }
}
  

Engin java类文件

private class Engine{
    private int horsepower;

    public int getHorsepower() {
        return horsepower;
    }

    public void setHorsepower(int horsepower) {
        this.horsepower = horsepower;
    }

}
  

Tire.java文件

private class Tire{
    private int size;

    public int getSize() {
        return size;
    }

    public void setSize(int size) {
        this.size = size;
    }
}

此外,“readVehicle()”方法代码中缺少某些内容。 您需要编写如何从Json对象构建Vehicule。

所以如果你的json文件看起来像:

{
     "carType": "Mercedes Classe B"
}

你需要写代码(例如readVehicle()方法):

Vehicule vehicule = new Vehicle();
vehicule.setType(object.getString("carType"));