Это предупреждает вас, потому что orderedBy
- статический метод, и вы вызываете его для экземпляра ImmutableSortedSet
.Это часто означает, что вы думаете, что делаете что-то одно, а на самом деле делаете что-то другое, и это имеет место в данном случае.
В результате этот код не будет делать то, что вы думаете, он делает... он отбросит ImmutableSortedSet
, созданный copyOf(obj)
(он используется только для доступа к статическому методу orderedBy
, который можно использовать напрямую), и вернет пустой набор, как если бы вы только что вызвали ImmutableSortedSet.orderedBy(myComparator).build()
.
Вот что вы хотите сделать (как сказал Р. Бемроуз):
ImmutableSortedSet<String> ordered = ImmutableSortedSet.copyOf(myComparator, obj);
Для потомков вот то, что я спешно опубликовал изначально (что дает тот же результат):
ImmutableSortedSet<String> ordered = ImmutableSortedSet.orderedBy(myComparator)
.addAll(obj).build();