Java:使用泛型进行列表初始化(T扩展Enum <t>&amp; AnyInterface)

时间:2016-11-18 08:24:18

标签: java generics collections enums

我在使用泛型时仍然非常弱,我有一个问题: 根据以下方法,我想初步列出一个清单:

public <T extends Enum<T> & AnyInterface> boolean getIsDescSort(Class<T> tableSortEnum) {
        return tableSortEnum.getName().endsWith(DESC_SUFFIX);
}

是否(通常)可以使用这些类型的对象准确初始化List?换句话说:我可以用这些信息输入我的列表吗?实现某种界面的枚举?

List<T extends Enum<T> & AnyInterface> myList;

在我的Eclipse IDE中向我展示了几个错误,所以我认为它不会编译。 我读了一些关于这个的文章,但是如果在初始化集合时甚至允许/可能的话,我也不会得到......

1 个答案:

答案 0 :(得分:2)

你试图在错误的地方打字。例如,以下将正常工作

public class Foo<T extends Enum<T> & AnyInterface> {
    private List<T> foo;
}

这将是

public static <T extends Enum<T> & AnyInterface> List<T> foo(Class<T> clazz) {
    ArrayList<T> foo = new ArrayList<>();
    return foo;
}