Просматривая метод EnumSet<E>
of
, я видел несколько перегруженных реализаций метода of
:
public static <E extends Enum<E>> EnumSet<E> of(E e)
public static <E extends Enum<E>> EnumSet<E> of(E e1, E e2)
.
.
public static <E extends Enum<E>> EnumSet<E> of(E e1, E e2, E e3, E e4, E e5)
а затем другой перегруженный метод с varargs
public static <E extends Enum<E>> EnumSet<E> of(E first, E... rest) {
EnumSet<E> result = noneOf(first.getDeclaringClass());
result.add(first);
for (E e : rest)
result.add(e);
return result;
}
Когда эти varargs могли обрабатывать другие реализации, почему этот метод перегружен таким образом? Есть ли какая-то конкретная причина для этого?
Я прошел через Джавадок того же самого, но я не мог найти убедительного объяснения.