Используя библиотеку Java Guava, как создать ImmutableSortedSet с помощью Builder? - PullRequest
3 голосов
/ 15 июня 2011

Я уверен, что это очень простой вопрос, но, пожалуйста, взгляните на пример кода ниже:

final ImmutableSortedSet<String> notOk = ImmutableSortedSet.naturalOrder().build();         
final ImmutableSortedSet<String> ok = new ImmutableSortedSet.Builder<String>(Ordering.natural()).build();
final ImmutableList<String> typicalGuava = ImmutableList.of("one", "two");

Мне просто интересно, как правильно использовать метод naturalOrder () в первом примере? В этом примере Java не может вывести тип, поэтому вы получаете ошибку «несоответствие типов».

Ответы [ 2 ]

5 голосов
/ 15 июня 2011

При такой последовательности связанных вызовов компилятор не может вывести аргумент типа для вызова на naturalOrder(), поскольку его результат не сразу присваивается чему-либо, что он может использовать для вывода.

Выможно написать

ImmutableSortedSet<String> ok = ImmutableSortedSet.<String>naturalOrder().build();

или

ImmutableSortedSet.Builder<String> builder = ImmutableSortedSet.naturalOrder();
// ...
ImmutableSortedSet<String> ok = builder.build();
3 голосов
/ 15 июня 2011

Сделайте это:

final ImmutableSortedSet<String> nowOk = ImmutableSortedSet.<String>naturalOrder().build();
...