Brian
Brian

Reputation: 7326

Interface method returns ArrayList containing different objects

I have an interface to initialize data that will generate list containing different object types:

public interface DataInitializer {
    public void initializeData();
    public ArrayList<> getData();
}

When I implement this abstract the getData() method of the implementing class will need to return ArrayLists containing different types of objects for example:

public ArrayList<Faculty> getData()
public ArrayList<Student> getData()

How to I account for this needed flexibility in the interface?

Upvotes: 2

Views: 2695

Answers (1)

Jeroen Vannevel
Jeroen Vannevel

Reputation: 44439

Make it generic

public interface DataInitializer {
    public void initializeData();
    public <T> ArrayList<T> getData();
}

Or on interface level

public interface DataInitializer<T> {
    public void initializeData();
    public ArrayList<T> getData();
}

Implementation example:

class StudentInitializer implements DataInitializer<Student> {
 public ArrayList<Student> getData() {

 }
}

Upvotes: 5

Related Questions