可变参数重载问题 public static void pp(int b){ System.out.println("hellow!"); }public static void pp(int... b){ System.out.println("hellow sec!");}但执行pp(3)时如何判断调用哪个方法呢!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可变参数必须位于最后一项。当可变参数个数多余一个时,必将有一个不是最后一项,所以只支持有一个可变参数。因为参数个数不定,所以当其后边还有相同类型参数时,java无法区分传入的参数属于前一个可变参数还是后边的参数,所以只能让可变参数位于最后一项。所以会调用第一个方法 会调用第一个因为第一个方法精确匹配了参数像这种可变式的参数,匹配范围是很宽泛的,因此级别也比较靠后所以JAVA会先优先调用精确匹配的那个方法 public class VarArgsTest { public static void main(String[] args) { m1(); m1("one"); m1("one","two"); //m1("one","two","three");//报错,因为系统不知道调用哪个方法... } public static void m1(String s1,String s2){ System.out.println("m1(String s1,String s2)"); } public static void m1(){ System.out.println("m1()"); } public static void m1(String s){ System.out.println("m1(String s)"); } public static void m1(String s,String... str){ System.out.println("m1(String s1,String... str)"); } public static void m1(String... str){ System.out.println("m1(String... str)"); }}测试结果 m1() m1(String s) m1(String s1,String s2) 说明 变长参数只有在必须的时候才被调用,换言之,加入有定长参数能够匹配的时候有限选择定长的方法去调用 如何修改一个文件的最后修改日期 SRVE0133E: An error occurred while parsing parameters. 大家有好的方法回复一下,谢谢! 怎么一用button调用函数就死机呢 高手门指教!!进销存软件中的先进先出问题???急急啊!!谢谢了 到底我哪里定义错了, 自定义异常, 哪里错了? JFrame加背景图片! 谁有together6 forjbuilder 的注册码?100分相送。 简单问题困惑菜鸟,请热心大侠进来看看!! 关于JB5安装问题: java多线程问题 有个问题让我觉得莫名其妙,希望大家多帮帮忙! 重定向恢复??在线等
因为第一个方法精确匹配了参数
像这种可变式的参数,匹配范围是很宽泛的,因此级别也比较靠后
所以JAVA会先优先调用精确匹配的那个方法
public class VarArgsTest {
public static void main(String[] args) {
m1();
m1("one");
m1("one","two");
//m1("one","two","three");//报错,因为系统不知道调用哪个方法...
}
public static void m1(String s1,String s2){
System.out.println("m1(String s1,String s2)");
}
public static void m1(){
System.out.println("m1()");
}
public static void m1(String s){
System.out.println("m1(String s)");
}
public static void m1(String s,String... str){
System.out.println("m1(String s1,String... str)");
}
public static void m1(String... str){
System.out.println("m1(String... str)");
}}
测试结果
m1()
m1(String s)
m1(String s1,String s2)
说明
变长参数只有在必须的时候才被调用,换言之,加入有定长参数能够匹配的时候有限选择定长的方法去调用