我有一个名为customer的抽象类和另一个名为payCust的类,它扩展了这个抽象类。还有另一个客户端类初始化客户列表。List<Customer> custList = new ArrayList<>();
客户类具有如下构造函数:
public Customer(String name, String email, String mag) {
this.CusEmail = email;
this.CusName = name;
this.magazine = mag;
}
payCust 具有以下构造函数:
public PayCust(String _name, String _email, String _accountType, String _custMag) {
super(_name, _email, _custMag);
this.accountType = _accountType;
}
所有变量都有公共获取和设置方法,例如
public void setName(String name) {
this.CusName = name;
}
public String getName() {
return this.CusName;
}
我的问题是,如果custList
添加了PayCust
。 如何从该列表中编辑客户的帐户类型?注意:电子邮件对每个客户都是唯一的
您必须在 ArrayList 中检查对象的实例类型并强制转换它以供使用。
像这样的东西,例如:
for (Customer c : custList){
if(c instanceof PayCust){
PayCust pc = (PayCust) c;
pc.getAccountType();
}
}
你必须
把它投射到一个PayCust
(假设你知道它是一个PayCust
):
PayCust example = (PayCust) custList.get(0);
String accountType = example.getAccountType ();
...