質問
構成が欲しいです ImmutableSortedSet
. 。私は次のようなコードsmtを書きました
Set<String> obj = new HashSet<String>();
Comparator<String> myComparator = new Comparator<String>(){
@Override
public int compare(String o1, String o2) {
return 0;
}
};
Set<String> ordered = ImmutableSortedSet.copyOf(obj)
.orderedBy(myComparator).build();
しかし、それは警告を生成します:
Immutablesortedsetのタイプから順序付けされた静的方法(コンパレータ)には、静的な方法でアクセスする必要があります
この警告を削除するにはどうすればよいですか @SuppressWarnings("static-access")
?ありがとう。
解決
それはあなたにその警告を与えているからです orderedBy
静的な方法であり、あなたはそれをのインスタンスで呼んでいます ImmutableSortedSet
. 。これは、実際に何か他のことをしているとき、あなたが1つのことをしていると思うことを意味します。
その結果、このコードはあなたが思うことをすることはできません...それは ImmutableSortedSet
によって作成された copyOf(obj)
(静的方法へのアクセスにのみ使用されています orderedBy
, 、直接使用することができます)、まるで電話をかけたかのように空のセットを返します ImmutableSortedSet.orderedBy(myComparator).build()
.
これがあなたがやりたいことです(R.ベムローズが言ったように):
ImmutableSortedSet<String> ordered = ImmutableSortedSet.copyOf(myComparator, obj);
後世のために、ここに私が最初に急いで投稿したものがあります(これは同じ結果があります):
ImmutableSortedSet<String> ordered = ImmutableSortedSet.orderedBy(myComparator)
.addAll(obj).build();
他のヒント
グアバを見た後 ImmutableSortedSet
ドキュメント、あなたは実際に他の過負荷の1つを実際に望んでいるようです copyOf
.
具体的には、 copyOf(Comparator, Collection)
過負荷:
Set<String> ordered = ImmutableSortedSet.copyOf(myComparator, obj);
所属していません StackOverflow