5.8.1 可变参数列表

来源:互联网 发布:echarts 地图动态数据 编辑:程序博客网 时间:2024/06/05 19:05

JAVA5加入了可变参数列表 argType... args, 可以承接多个参数或者一个数组作为参数.相当于 argType[]的参数类型, 但比后者适用性更广一点

<span style="white-space:pre"></span>public static void main(String[] args) {Robot[] robots1 = { new Robot("Tom"), new Robot("Jerry") };Robot[] robots2 = new Robot[] { new Robot("擎天柱"), new Robot("大黄蜂") };// ! Robot[] robots3 = Robot[]{new Robot("威震天")};Main.printAll(robots1);Main.printAll(robots2);Main.printAll(1,2,3,4,5);Main.printAll(new String[]{"morning","afternoon"});}//采用可变参数,可以接受一个数组或者若干参数public static void printAll(Object... objects) {for(Object obj:objects){System.out.print(obj+" ");}System.out.println("End");}

可变参数会带来重载问题,比如多个函数调用匹配到2个以上的函数的情况
public static void main(String[] args) {Robot[] robots1 = { new Robot("Tom"), new Robot("Jerry") };Robot[] robots2 = new Robot[] { new Robot("擎天柱"), new Robot("大黄蜂") };// ! Robot[] robots3 = Robot[]{new Robot("威震天")};Main.printAll(robots1);Main.printAll(robots2);//这里编译器会不知道调用哪个Main.printAll(1,2,3,4,5);Main.printAll(new String[]{"morning","afternoon"});}//采用可变参数,可以接受一个数组或者若干参数public static void printAll(Object... objects) {for(Object obj:objects){System.out.print(obj+" ");}System.out.println("End");}public static void printAll(int int1,Object... objects){System.out.println("here");}


0 0
原创粉丝点击