我有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()); } }