1

老实说,我不知道用谷歌搜索什么:

public static <T extends Fragment & OnClickListener> SomeListFragment instantiate(
        T target, int requestCode, DataSource<ResultItem> dataSource, int position) {

    SomeListFragment fragment = new ExposeListFragment();

    return fragment;
}

它在 SomeListFragment 类中。我确实知道这是返回 SomeListFragment 的静态方法(作为 new SomeListFragment () 的替代方法),但是括号中的内容是什么?

<T extends Fragment & OnClickListener>
4

3 回答 3

2

这是使用泛型的代码。

在这种情况下,您将声明您的SomeListFragment fooas SomeListFragement<T> foowhere T 是一个实现接口的类FragmentOnClickListener. 然后,当您调用时,instantiate您传入一个 Objecttarget类型的参数T

于 2013-02-13T17:04:18.617 回答
0

当心!SomeListFragment 这里没有通用参数!唯一的参数化类型是T target引用。程序员决定这个target引用应该同时实现FragmentOnClickListener接口(尽管他没有从target方法体内调用/使用任何方法)。

由于它是静态方法,因此这是唯一的方法。不能用泛型参数声明类,因为这总是与实例相关联。

于 2013-02-13T18:20:07.893 回答
0

括号中的内容定义了用作目标参数类型的泛型类型 T。它表示类型 T 可以是扩展 Fragment 类并实现 OnClickListener 接口的任何类型。

用于文档的 Google Java 泛型。

于 2013-02-13T17:02:14.317 回答