package generics_practice_test;
import java.util.Set;
public class Main {
public static void main (String args[])
{
Set<String> set = new Set<String>();// set object cannot be initialized
}
}
Java无法初始化set对象,但当我Set
替换HashSet
并导入java.util.HashSet
并使用代码Set<String> set = new HashSet<String>
时,代码可以正常工作。我想知道为什么。
答案 0 :(得分:6)
Set
是一个接口,接口本质上是抽象的,因此您无法实例化它。您需要使用Set
接口的实现类,例如HashSet
:
更改此
Set<String> set = new Set<String>();// set object cannot be initialized
到
Set<String> set = new HashSet<String>();
答案 1 :(得分:1)
set是java中的一个接口,因此您无法创建它的对象
答案 2 :(得分:1)
Set是java中的interface
,你不能用Java创建一个接口的对象。
而不是那样,试试这个:
Set<String> set = new HashSet<String>(); //HashSet is a subclass of Set interface
答案 3 :(得分:0)
Set
是interface
,您无法初始化它,您必须使用正在实现它的具体类
java.util.EnumSet
java.util.HashSet
java.util.LinkedHashSet
java.util.TreeSet