Возможный дубликат:
Почему у ImmavableList Guava так много перегруженных методов()?
Глядя на Guava ImmutableList (и некоторые другие классы), вы найдете множество перегруженных методов удобства of
( "Возвращает неизменяемый список, содержащий заданные элементы, в порядке." ), Которые принимают различное количество параметров:
...
public static <E> ImmutableList<E> of(E e1, E e2, E e3)
public static <E> ImmutableList<E> of(E e1, E e2, E e3, E e4)
public static <E> ImmutableList<E> of(E e1, E e2, E e3, E e4, E e5)
...
Весь путь к этому:
public static <E> ImmutableList<E> of(E e1,
E e2,
E e3,
E e4,
E e5,
E e6,
E e7,
E e8,
E e9,
E e10,
E e11,
E e12,
E... others)
Некоторые мои коллеги считают это глупым, задаваясь вопросом, почему существует не только один метод: of(E... elements)
. Они подозревают, что "оптимизация" с ненадежным руководством относится к категории "как вы думаете, вы умнее компилятора" или что-то в этом роде.
Моя догадка заключается в том, что Кевин Бурриллион и др. поместите эти методы там по реальной причине. Может ли кто-нибудь объяснить (или предположить), что это за причина?