Reputation: 7326
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
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