Reputation: 1028
I have a method that takes in a List<>
and adds all the numbers in the list together and returns if the number is = 100
My problem is that I want to use the same method for a number of different types of lists
So instead of having this
public boolean checkPercent(List<BarStaff> associates){..same..}
public boolean checkPercent(List<Waiters> associates){..same..}
public boolean checkPercent(List<KitchenStaff> associates){..same..}
I want to have this
public boolean checkPercent(List<could be any type> associates){..same..}
Instead of reusing the same code just of different lists, is there a way to use the same code for all the different types of lists (the staff have the same values in them so they are not different in any way)?
Upvotes: 1
Views: 155
Reputation: 4744
The object-oriented approach would be to have BarStaff
, Waiters
, and KitchenStaff
implement a Employee
interface that has a method public int getPercentage()
.
public boolean checkPercent(List<? extends Employee> associates)
{
foreach (Employee associate in associates)
{
int i = associate.getPercentage();
// rest of code.
}
}
Upvotes: 2
Reputation: 117589
Use generics:
public <T> boolean checkPercent(List<T> associates){...}
Upvotes: 3
Reputation: 39187
You may create a generic method:
public <T> boolean checkPercent(List<T> associates) {
... your code ...
}
Upvotes: 7
Reputation: 359786
You could use a parameterized method:
public <T> boolean checkPercent(List<T> associates)
{
// snip...
}
or just accept any list:
public boolean checkPercent(List<?> associates)
{
// snip...
}
Upvotes: 8