Effective-Java(Item 42)之小心地使用可变参数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36336003/article/details/83989154

可变参数是为printf设计的,在jdk1.5时加入jdk中;
调用时自动根据参数数量创建一个数组,将参数值放入数组中,并将该数组传入包含可变参数的方法,使用时可以像数组一样使用可变参数;

使用方法:

参数个数为0或更多时,使用如下:
// java.util.Arrays#asList
public static <T> List<T> asList(T... a) {
    return new ArrayList<>(a);
}
参数个数为1或更多时,使用如下:
// java.util.PrintStream#printf
public PrintStream printf(String format, Object ... args) {
    return format(format, args);
}
调用参数个数较少的方法概率非常大,使用如下:
// java.util.EnumSet#of(假设调用5个参数或更少的of方法的概率为90%)
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) {}
public static <E extends Enum<E>> EnumSet<E> of(E e1, E e2, E e3, E e4) {}
public static <E extends Enum<E>> EnumSet<E> of(E e1, E e2, E e3, E e4,
                                                E e5){}
public static <E extends Enum<E>> EnumSet<E> of(E first, E... rest) {}

猜你喜欢

转载自blog.csdn.net/qq_36336003/article/details/83989154