方法动态参数个数
下文笔者讲述动态参数个数的方法分享,如下所示
动态参数个数特性: 在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());
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


