如何从其成员变量中获取类对象?

时间:2015-06-10 06:58:14

标签: java

我目前正在处理此代码,我想将ID传递给成员函数以获取该对象。

public class Car {

   private int _ID;
   private String name;
   private String model;

   Car(int _id, String name, String model){
       this._ID = _id;
       this.name = name;
       this.model = model;
   }

   ....

   public static Car getCar(int _id){
       Car mCar;
       //TODO: Algo to get car
       return mCar;
   }

}

有没有办法以这种方式获得对象?

任何帮助表示赞赏! 谢谢!

3 个答案:

答案 0 :(得分:3)

您需要按键保留Map个对象。这是一种方法:

public class Car {

   private int _ID;
   private String name;
   private String model;

   Car(int _id, String name, String model){
       this._ID = _id;
       this.name = name;
       this.model = model;
       carsById.put(_id, this);  // <-- add to map
   }

   ....

   private static Map<Integer, Car> carsById = new HashMap<>();

   public static Car getCar(int _id){
       return carsById.get(_id);
   }

}

答案 1 :(得分:1)

没有预定义的方法来做到这一点。您必须让Car或其他东西维持Map<Integer,Car>或类似的汽车。这通常最好在Car本身 中完成,但在使用它的代码中完成。

答案 2 :(得分:0)

除非您拥有已创建Car的列表(或地图或树或其他任何合适的内容),否则您的当前代码无法使用。一个好的做法是将这个列表从其他地方维护的Car类中分离出来。但如果你坚持,shmosel提供了一种方式。