Я использую Google Guava r08 и JDK 1.6.0_23.
Я хочу создать ImmutableSortedMap
с помощью компоновщика.Я знаю, что могу создать конструктор следующим образом:
ImmutableSortedMap.Builder<Integer, String> b1 =
new ImmutableSortedMap.Builder<Integer, String>(Ordering.natural());
, а затем использовать его для построения карт, например:
ImmutableSortedMap<Integer, String> map =
b1.put(1, "one").put(2, "two").put(3, "three").build();
Я заметил, что у класса ImmutableSortedMap
есть метод naturalOrder()
, который возвращает Builder
с естественным упорядочением.Однако, когда я пытаюсь вызвать этот метод, я получаю странные ошибки.Например, это приводит к странной «; ожидаемой» ошибке:
// Does not compile
ImmutableSortedMap.Builder<Integer, String> b2 =
ImmutableSortedMap<Integer, String>.naturalOrder();
Каков правильный синтаксис для вызова метода naturalOrder()
?
В документации API метода упоминается некоторый компиляторошибка.Это как-то связано с тем, что этот метод не работает?
edit
MForster ответ хороший.Но когда я отказываюсь от дженериков, я не могу сделать это "за один раз":
// Doesn't work, can't infer the types properly
ImmutableSortedMap<Integer, String> map =
ImmutableSortedMap.naturalOrder().put(1, "one").put(2, "two").put(3, "three").build();
Это работает:
ImmutableSortedMap<Integer, String> map =
ImmutableSortedMap.<Integer, String>naturalOrder().put(1, "one").put(2, "two").put(3, "three").build();