接口方法返回包含不同对象的ArrayList

Bri*_*ian 2 java oop polymorphism interface arraylist

我有一个接口来初始化数据,该数据将生成包含不同对象类型的列表:

public interface DataInitializer {
    public void initializeData();
    public ArrayList<> getData();
}
Run Code Online (Sandbox Code Playgroud)

当我实现这个抽象时,实现类的 getData() 方法将需要返回包含不同类型对象的 ArrayList,例如:

public ArrayList<Faculty> getData()
public ArrayList<Student> getData()
Run Code Online (Sandbox Code Playgroud)

如何在界面中考虑这种所需的灵活性?

Jer*_*vel 5

使其通用

public interface DataInitializer {
    public void initializeData();
    public <T> ArrayList<T> getData();
}
Run Code Online (Sandbox Code Playgroud)

或者在接口级别

public interface DataInitializer<T> {
    public void initializeData();
    public ArrayList<T> getData();
}
Run Code Online (Sandbox Code Playgroud)

实现示例:

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

 }
}
Run Code Online (Sandbox Code Playgroud)