为什么 EnumSet 有许多重载的“of”方法?
2022-09-01 07:38:53
在浏览该方法时,我看到了多个方法的重载实现: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,但我找不到任何令人信服的解释。