无法理解此类声明的语法

时间:2016-11-16 09:42:04

标签: java

我是java的初学者,我不理解以下代码。

    public class FlexibleItemHolderExample<Model> extends AbstractSectionableItem<FlexibleItemHolderExample.ViewHolder, HeaderItem>
    implements IFilterable, IHolder<Model>

为什么&lt;&gt;使用过,以上声明是什么意思?

1 个答案:

答案 0 :(得分:2)

Java templates是一种可以编写代码的方法,其中TYPE被视为变量。

例如 - 假设您想创建自己的List类型,但是您不确定列表中需要哪些类型,或者您认为需要一个List for String类型,一个用于Integer类型,一个用于双重类型。

使用Generics,您可以使用泛型创建一个类(List),然后只需注入这些类型。

实际上,这正是List和ArrayList的工作原理:

List<Integer> myIntList;
ArrayList<String> myStringList;

他们只有一个实现,而不是每种类型的列表。增加的功能是您可以在列表中拥有自定义对象列表,而无需重新编写List / ArrayList类型。