我的接口定义为
public interface QueryCompleteListener {
void onQueryCompleted(int token, ArrayList<Object1> songList);
}
我正在使用此界面返回回调。在一些回调中,我想传递ArrayList<Object1>
,在某些情况下,我想通过接口传递ArrayList<Object2>
。
如果我将接口方法声明为
void onQueryCompleted(int token, ArrayList<Object> songList)
传递任何类型的Object,当我通过传递ArrayList<Object1>
答案 0 :(得分:9)
答案 1 :(得分:1)
除非您在方法体中确实需要一个类型变量,否则您只需使用:
void onQueryCompleted(int token, List<?> songList);
答案 2 :(得分:0)
通配符是要走的路,但你可能想要某种形式的控制你正在使用什么类型的对象。
只需使自定义类(Object1,Object2,...)实现自定义接口(CustomSuperInterface)并声明像这样的集合
void onQueryCompleted(int token, List<? extends CustomSuperInterface> songList);