最近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[]
我的作业怎么了?
您缺少实际访问私有字段的资格。当前,您正在尝试重新分配传递给构造函数的参数。相反,您应该使用以下代码:
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] 删除。
我来说两句