方法动态参数个数
下文笔者讲述动态参数个数的方法分享,如下所示
动态参数个数特性: 在JDK 5中引入 使用变长参数有两个条件 一是变长的那一部分参数具有相同的类型 二是变长参数必须位于方法参数列表的最后面 变长参数同样是Java中的语法糖 其内部实现是编译器在编译源代码的时候将变长参数部分转换成了Java数组例:
public class Test { public static void main(String[] args) { m1("Java","265","com","test"); } public static void m1(String name,String... len){ System.out.println("this is "+name); System.out.print("go go :["); for (int i = 0; i < len.length; i++) { if(i!=len.length-1) { System.out.print(len[i]+","); }else { System.out.print(len[i]+"]"); } } } } 运行以上代码,将输出以下信息 this is Java go go:[265,com,test] 通过jad反编译出来的代码 public class Test { public Test() { } public static void main(String args[]) { //入参也被转成成了数组 m1("Java", new String[] { "265","com","test" }); } //这边已经将变长参数转换成了数组 public static transient void m1(String name, String len[]) { System.out.println((new StringBuilder()).append("this is ").append(name).toString()); System.out.print("go go:["); for(int i = 0; i < len.length; i++) if(i != len.length - 1) System.out.print((new StringBuilder()).append(len[i]).append(",").toString()); else System.out.print((new StringBuilder()).append(len[i]).append("]").toString()); } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。