无法从字符串数组创建Set

亚诺斯

最近5分钟我一直盯着屏幕,似乎无法弄清楚我在做什么错:

class Example {

    private final Set<String> values;

    public Example(String... values) {
        values = new HashSet<String>(Arrays.asList(values));
    }
}

我很惊讶为什么String[]不能将转换为List<String>来初始化HashSet<String>

我收到构建错误:

incompatible types: java.util.HashSet<java.lang.String> cannot be converted to java.lang.String[]

我的作业怎么了?

Vogel612

您缺少实际访问私有字段的资格。当前,您正在尝试重新分配传递给构造函数的参数。相反,您应该使用以下代码:

public Example(String... values) {
     this.values = new HashSet<String>(Arrays.asList(values));
}

通过使用“钻石运算符”,甚至可以进一步缩短此时间,该功能自Java 7开始提供:

public Example(String... values) {
     this.values = new HashSet<>(Arrays.asList(values));
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章