传递ImmutableSet代替Set?

har*_*are 0 collections guava

我有一个期望Set参数的方法.我想传入一个空集,我不想要任何副作用.

我可以通过传递来收集这些内容:

 Collections.unmodifiableSet(Sets.newHashSet())
Run Code Online (Sandbox Code Playgroud)

但我想传入:

 ImmutableSet.of()
Run Code Online (Sandbox Code Playgroud)

如果我做了前者a Set<Object>创建并且我得到"方法不适用于args Set'错误.如果我做后者我得到ImmutableSet<Object>了,我得到类似的错误.

这有效:

 Collections.unmodifiableSet(new HashSet<String>())
Run Code Online (Sandbox Code Playgroud)

...但看起来很难看,我想找到一个Google Collections方式.

Chr*_*ung 9

试试这个:

ImmutableSet.<String>of()
Run Code Online (Sandbox Code Playgroud)

这也可以:

Collections.<String>emptySet()
Run Code Online (Sandbox Code Playgroud)

只要类型推断失败,此语法对于手动指定类型参数很有用.:-)