我目前正在处理此代码,我想将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;
}
}
有没有办法以这种方式获得对象?
任何帮助表示赞赏! 谢谢!
答案 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提供了一种方式。