newSpringer
newSpringer

Reputation: 1028

Create list with different objects

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

Answers (4)

Hans Z
Hans Z

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

Eng.Fouad
Eng.Fouad

Reputation: 117589

Use generics:

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

Upvotes: 3

Howard
Howard

Reputation: 39187

You may create a generic method:

public <T> boolean checkPercent(List<T> associates) {
    ... your code ...
}

Upvotes: 7

Matt Ball
Matt Ball

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

Related Questions