【发布时间】:2020-06-13 15:10:53
【问题描述】:
正如在这个问题Anonymous arrays in Java 中发现的那样,我为java.utils.Set 尝试了相同的过程,但它不起作用。
如果我有
private HashMap<String, String[]> flags;
我可以轻松调用
this.flags.put("test", new String[]{"value"});
但是有
private HashMap<String, Set<String>> flags;
这不起作用:
this.flags.put("test", new Set<String>().add("value"));
在Java中将匿名Set传递给函数的正确方法是什么?
【问题讨论】:
-
Set.add()不返回Set。而Set是一个接口,这意味着你不能像那样实例化它。 -
那么没有
.add()有可能吗? –this.flags.put("test", new Set<String>());也不会编译。 -
您首先需要从具体类创建一个集合,例如
HashSet。然后你把那个集合,而不是add的结果。this.flags.put("test", new HashSet<>(Arrays.asList("value"));之类的东西应该可以工作 -
Jup,这确实可以编译。谢谢! @ernest_k
标签: java arrays methods hashmap set