1

我有一个方法,它接受 aList<>并将列表中的所有数字加在一起,如果数字 = 100 则返回

我的问题是我想对许多不同类型的列表使用相同的方法

所以不是有这个

public boolean checkPercent(List<BarStaff> associates){..same..}
public boolean checkPercent(List<Waiters> associates){..same..}
public boolean checkPercent(List<KitchenStaff> associates){..same..} 

我想要这个

public boolean checkPercent(List<could be any type> associates){..same..} 

有没有办法对所有不同类型的列表使用相同的代码,而不是重用不同列表的相同代码(员工在其中具有相同的值,因此它们在任何方面都没有不同)?

4

4 回答 4

8

您可以使用参数化方法

public <T> boolean checkPercent(List<T> associates)
{
    // snip...
}

或只接受任何列表

public boolean checkPercent(List<?> associates)
{
    // snip...
}
于 2012-07-17T15:20:41.387 回答
7

您可以创建一个通用方法

public <T> boolean checkPercent(List<T> associates) {
    ... your code ...
}
于 2012-07-17T15:20:46.260 回答
3

使用泛型:

public <T> boolean checkPercent(List<T> associates){...}
于 2012-07-17T15:21:01.543 回答
2

面向对象的方法是拥有BarStaff,WaitersKitchenStaff实现一个Employee具有方法的接口public int getPercentage()

public boolean checkPercent(List<? extends Employee> associates)
{
    foreach (Employee associate in associates)
    {
        int i = associate.getPercentage();
        // rest of code.
    }
}
于 2012-07-17T15:24:21.813 回答