1

Set パラメーターを必要とするメソッドがあります。空のセットを渡したいのですが、セットに副作用はありません。

以下を渡すことで、コレクションでこれを行うことができます。

 Collections.unmodifiableSet(Sets.newHashSet())

しかし、私は渡したい:

 ImmutableSet.of()

前者を実行するSet<Object>と、作成され、「引数セットに適用できないメソッド」エラーが発生します。後者を実行するImmutableSet<Object>と、作成され、同様のエラーが発生します。

これは機能します:

 Collections.unmodifiableSet(new HashSet<String>())

...しかし、醜いようで、Google コレクションの方法を見つけたいと思っています。

4

2 に答える 2

10

これを試して:

ImmutableSet.<String>of()

これも機能します:

Collections.<String>emptySet()

この構文は、型の推論が失敗したときに型引数を手動で指定する場合に便利です。:-)

于 2010-01-27T18:11:14.283 に答える
0

これも機能します:

public static void main(String[] args) {
    Set<String> emptySet = ImmutableSet.of();
    doStuffWith(emptySet);
}

static void doStuffWith(Set<String> strings) {
    // ...
}

Set<String>型推論は、変数に割り当てていることに気づき、型パラメーターが でなければならないことを知っているためStringです。

于 2010-01-30T03:45:13.470 に答える