2

关于 Java 语法的快速问题。我想在库的静态方法中获取一个 Set 并返回一个 List。以下给出了编译器错误,我不知道为什么:

public static List<T> asList(Set<T> keySet)
{
    // TODO Auto-generated method stub
    return null;
}

消息是“T 无法解析为类型”。但这不是 Java 中泛型类型的语法吗?

4

3 回答 3

6

对于泛型方法,您还需要将类型放在<T>返回参数之前,例如

public static <T> List<T> asList(Set<T> keySet)
{
    // TODO Auto-generated method stub
    return null;
}
于 2012-05-03T17:04:05.750 回答
1

您必须指定 T 不是具体类型,而是泛型类型:

public static <T> List<T> asList(Set<T> keySet)

请注意,每个 List 实现中都有一个构造函数,该构造函数将集合作为参数并执行此静态方法的操作。我不确定它是否特别有用:

List<Foo> list = new ArrayList<Foo>(setOfFoos);
于 2012-05-03T17:05:51.400 回答
1

添加<T>。您必须指定 T。

private static <T> List<T> asList(Set<T> keySet) {
    return result;
}
于 2012-05-03T17:06:42.617 回答