为什么java无法初始化set对象?

时间:2014-07-29 11:37:03

标签: java

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>时,代码可以正常工作。我想知道为什么。

4 个答案:

答案 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

注意: Using an Interface as a Type

答案 3 :(得分:0)

Setinterface,您无法初始化它,您必须使用正在实现它的具体类

java.util.EnumSet
  java.util.HashSet
    java.util.LinkedHashSet
    java.util.TreeSet