Java 无法对非静态类型E进行静态引用
在编译时,我遇到如下错误 Gen.java第6行出错Java 无法对非静态类型E进行静态引用,java,generics,collections,Java,Generics,Collections,在编译时,我遇到如下错误 Gen.java第6行出错 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.asLi
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);
}
}
List<E> s = new ArrayList<E>();
^
无法对非静态类型E进行静态引用
Gen.java第6行出错
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);
}
}
List<E> s = new ArrayList<E>();
^
无法对非静态类型E进行静态引用
类型E不存在
这里,s是一个字符串列表,所以使用:list s=new ArrayList 类型E不存在
这里,s是一个字符串列表,所以使用:list s=new ArrayList 您想要的是一个字符串列表,而不是一个未定义的、虚构类型E的列表:
List<E> s = new ArrayList<E>();
^
或者更简单,如果您使用的是Java 7:
List<String> s = new ArrayList<String>();
通过阅读了解泛型。您想要的是字符串列表,而不是未定义的虚构类型E的列表:
List<E> s = new ArrayList<E>();
^
或者更简单,如果您使用的是Java 7:
List<String> s = new ArrayList<String>();
通过阅读了解泛型。您可以让系统推断类型,但如果不是,则不能在静态上下文中使用动态类型
List<String> s = new ArrayList<>();
您可以让系统推断类型,但如果不是,则不能在静态上下文中使用动态类型
List<String> s = new ArrayList<>();
@Selva-在这段代码中,您可以看到从测试调用makeList传递了一个字符串数组,并期望返回一个列表。静态makeList方法使用T而不是String,但声明它返回与数组组件类型相同的列表。这与用法相匹配,因此通过编译。@Selva-在这段代码中,您可以看到从测试中调用makeList会通过一个字符串数组,并期望返回一个列表。静态makeList方法使用T而不是String,但声明它返回与数组组件类型相同的列表。这与用法相匹配,因此可以通过编译。