メソッドを調べている間、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 が他の実装を処理できたのに、なぜこのメソッドがこのようにオーバーロードされるのでしょうか? これには具体的な理由はありますか?
同じJavadocを調べましたが、説得力のある説明が見つかりませんでした。