import java.util.*;
public class Gen {
public static void main(String[] args) {
String[] name = {"Selva", "KSA", "selva","ksa"};
List<E> s = new ArrayList<E>();
s.addAll(Arrays.asList(name));
System.out.println(s);
}
}
编译时我收到如下错误
Gen.java中的错误(第6行)
List<E> s = new ArrayList<E>(); ^
无法对非静态类型E
进行静态引用Gen.java中的错误(第6行)
List<E> s = new ArrayList<E>(); ^
无法对非静态类型E
进行静态引用
答案 0 :(得分:2)
你想要的是一个字符串列表,而不是一个未定义的虚构类型E的列表:
List<String> s = new ArrayList<String>();
或更简单,如果您使用的是Java 7:
List<String> s = new ArrayList<>();
通过阅读the tutorial来了解泛型。
答案 1 :(得分:2)
您可以让系统推断出类型,否则不能,您不能在静态上下文中使用动态类型。
public static <T> List<T> makeList(final T... values) {
List<T> list = new ArrayList(Arrays.asList(values));
return list;
}
public void test() {
String[] names = {"Selva", "KSA", "selva", "ksa"};
List<String> s = makeList(names);
System.out.println(s);
}
答案 2 :(得分:1)
类型E
不存在。
此处,s
是String
的列表,因此请使用:List<String> s = new ArrayList<String>();