Поскольку при вызове builder()
нет левой части выражения.Компилятор не может определить, какой тип добавить туда.(Это не может быть выведено из последующих вызовов методов)
Если вы измените его на следующее, оно будет работать:
Builder<Integer> builder = ImmutableList.builder();
this.bar = builder.add(first).addAll(Arrays.asList(other)).build();
Однако вы можете безопасно сохранить текущий код - это нормально.И даже лучше, чем в приведенном выше примере (он короче)
О рефакторинге - почему бы не использовать .add(first).add(other)
?Метод add
имеет версию varargs.