关于 Java 语法的快速问题。我想在库的静态方法中获取一个 Set 并返回一个 List。以下给出了编译器错误,我不知道为什么:
public static List<T> asList(Set<T> keySet)
{
// TODO Auto-generated method stub
return null;
}
消息是“T 无法解析为类型”。但这不是 Java 中泛型类型的语法吗?
对于泛型方法,您还需要将类型放在<T>
返回参数之前,例如
public static <T> List<T> asList(Set<T> keySet)
{
// TODO Auto-generated method stub
return null;
}
您必须指定 T 不是具体类型,而是泛型类型:
public static <T> List<T> asList(Set<T> keySet)
请注意,每个 List 实现中都有一个构造函数,该构造函数将集合作为参数并执行此静态方法的操作。我不确定它是否特别有用:
List<Foo> list = new ArrayList<Foo>(setOfFoos);
添加<T>
。您必须指定 T。
private static <T> List<T> asList(Set<T> keySet) {
return result;
}