使用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 &lt;&gt;参数重载Java函数 的全部内容, 来源链接: utcz.com/qa/414803.html

回到顶部