1

我试图在 ListView 的子类中覆盖方法 setAdapter。setAdapter 定义为

void setAdapter(T adapter);

在 AdapterView 类中。AdapterView 类是泛型类 AdapterView

上面的声明不适用于 ListView 子类,因为类型变量不可用,但我不明白如何将类型变量引入子类。任何具体类型都不起作用。

4

1 回答 1

1

确实AdapterView使用泛型类型参数,但是ListViewGridView指定类型必须是ListAdapter. 所以你可以这样做:

@Override
public void setAdapter(ListAdapter adapter) {
    // ...
}

这是因为ListView的父类AbsListView, 扩展了AdapterView<ListAdapter>

public abstract class AbsListView extends AdapterView<ListAdapter> { ... }

这意味着TListAdapterListView.

于 2013-10-26T21:46:52.297 回答