Прегледах някакъв JAVA код, създаден от Google, и намерих ImmutableSet: http://google-collections.googlecode.com/svn/trunk/javadoc/com/google/common/collect/ImmutableSet.html
Те внедриха метода of() с няколко други начина:
public static <E> ImmutableSet<E> of(E e1, E e2);
public static <E> ImmutableSet<E> of(E e1, E e2, E e3);
public static <E> ImmutableSet<E> of(E e1, E e2, E e3, E e4);
public static <E> ImmutableSet<E> of(E e1, E e2, E e3, E e4, E e5);
public static <E> ImmutableSet<E> of(E... elements);
Проверих внедряването, което е тук:https://code.google.com/p/google-collections/source/browse/trunk/src/com/google/common/collect/ImmutableSet.java
Има метод за създаване със следния подпис:
private static <E> ImmutableSet<E> create(E... elements)
който обвива на
private static <E> ImmutableSet<E> create(Iterable<? extends E> iterable, int count);
метод. Публичните методи просто предават параметрите към метода с подпис create(E... elements), който накрая извиква другия метод за създаване.
Предполагам, че публичните методи с фиксиран брой параметри са ненужни, тъй като имаме метода of(E... elements).
Въпросът ми е защо го направиха по този начин? Производителност? Или е модел?
Благодаря.