使用List <>参数重载Java函数
我有2节课
public class Customer{ ...
public String getCustomerNumber();
...
}
public class Applicant{
....
private Customer c;
public Customer getCustomer(){ return c; }
...
}
当显示客户或申请人列表时,我需要一个函数,该函数可对列表进行迭代并使用CustomerNumber进行处理。
我试过重载该功能
public void processCustomerNumbers(List<Customer> custList)...
public void processCustomerNumbers(List<Applicant> appList)
...
但是这些被看作是重复的方法…除了有2个不同名称的函数之外,还有一种不错的方法吗?
回答:
如果您使两个类都实现一个通用接口,
interface CustomerNumber { String getCustomerNumber();
}
public class Customer implements CustomerNumber {
...
public String getCustomerNumber();
...
}
public class Applicant implements CustomerNumber {
....
private Customer c;
public Customer getCustomer() { return c; }
public String getCustomerNumber() { return getCustomer().getCustomerNumber(); }
...
}
那么您也许可以只用一个方法就能做您想做的事情:
public void processCustomerNumbers(List<? extends CustomerNumber> appList) { for (Customer c: appList) {
processCustomerNumber(c.getCustomerNumber());
}
}
以上是 使用List <>参数重载Java函数 的全部内容, 来源链接: utcz.com/qa/414803.html