有2个toString方法吗?
Have 2 toString method?
我有 3 个类。服务员,汽车和车库。
都有自己的 toString 方法。
但是,
public class Attendant {
private Cars assign;
static ArrayList<Attendant> myAtt = new ArrayList<Attendant>();
public Attendant(int staffNum, String id, boolean available, attNm name, Cars assign) {
this.staffNum = staffNum;
this.id = id;
this.available = available;
this.name = name;
this.assign = assign;
}
public String toString() {
return "Attendant [staffNum=" + staffNum + ", id=" + id + ", available=" + available + ", name=" + name
+ ", assign=" + assign + "]";
}
}
汽车:
public class Cars {
private String carID;
private String plateNum;
private static String position;
private static Attendant assignedTo;
private long currTime;
static String[] tempArray2 = new String[Garage.getCarsCapacity()];
@Override
public String toString() {
return "Car:" + plateNum + " ID:" + carID + " Position:" + position + " Assigned to:" + assignedTo.getId()
+ "(" + assignedTo.getName() + ")" + " Parked at:" + convert(currTime);
}
}
所以我的 2 toString 打印正常。
问题是我要修改服务员对象以包含汽车作为 parameter.So 如果我打印我所有的服务员它将使用它的 toString 然后打印分配部分它去打印汽车 toString。
当我想打印我的服务员时,我需要它只打印 carID。
我无法将汽车更改为 String,因为我按原样使用它。
如果我使用 assign.getCarID 我的 java 崩溃。
我认为是因为一些服务员汽车参数为空。
请问我该怎么办?
Ps: 都是打印对应对象的arraylists
您只需更改 Attendant 的 toString 方法即可。现在它过于简单了,通过打印出赋值变量的内容来打印出 Cars 的 toString,而不是让它打印出您想要显示的特定 Cars 数据。这通常意味着从 Cars 调用 getter 方法。另外,您的 Cars class 看起来已损坏,因为它包含单个 Car 的信息以及多辆汽车的信息。为什么会这样还不清楚。
我有 3 个类。服务员,汽车和车库。 都有自己的 toString 方法。 但是,
public class Attendant {
private Cars assign;
static ArrayList<Attendant> myAtt = new ArrayList<Attendant>();
public Attendant(int staffNum, String id, boolean available, attNm name, Cars assign) {
this.staffNum = staffNum;
this.id = id;
this.available = available;
this.name = name;
this.assign = assign;
}
public String toString() {
return "Attendant [staffNum=" + staffNum + ", id=" + id + ", available=" + available + ", name=" + name
+ ", assign=" + assign + "]";
}
}
汽车:
public class Cars {
private String carID;
private String plateNum;
private static String position;
private static Attendant assignedTo;
private long currTime;
static String[] tempArray2 = new String[Garage.getCarsCapacity()];
@Override
public String toString() {
return "Car:" + plateNum + " ID:" + carID + " Position:" + position + " Assigned to:" + assignedTo.getId()
+ "(" + assignedTo.getName() + ")" + " Parked at:" + convert(currTime);
}
}
所以我的 2 toString 打印正常。 问题是我要修改服务员对象以包含汽车作为 parameter.So 如果我打印我所有的服务员它将使用它的 toString 然后打印分配部分它去打印汽车 toString。 当我想打印我的服务员时,我需要它只打印 carID。 我无法将汽车更改为 String,因为我按原样使用它。 如果我使用 assign.getCarID 我的 java 崩溃。 我认为是因为一些服务员汽车参数为空。 请问我该怎么办?
Ps: 都是打印对应对象的arraylists
您只需更改 Attendant 的 toString 方法即可。现在它过于简单了,通过打印出赋值变量的内容来打印出 Cars 的 toString,而不是让它打印出您想要显示的特定 Cars 数据。这通常意味着从 Cars 调用 getter 方法。另外,您的 Cars class 看起来已损坏,因为它包含单个 Car 的信息以及多辆汽车的信息。为什么会这样还不清楚。