参数列表问题public class Tree {static void f(float i,Character...characters){System.out.println(fi
参数列表问题
public class Tree {
static void f(float i,Character...characters){
System.out.println("first");
}
static void f(Character...characters){
System.out.println("second");
}
public static void main(String[] args) {
f(1,'a');
f('a','b');
}
}
红色部分为什么无法编译通过啊
public class Tree {
static void f(float i,Character...characters){
System.out.println("first");
}
static void f(Character c,Character...characters){
System.out.println("second");
}
public static void main(String[] args) {
f(1,'a');
f('a','b');
}
}
做如上更改后仍然无法编译通过?
[解决办法]
楼主请看这个程序:
- Java code
public class Test1 { static void f(float i){ } public static void main(String[] args) { f('a'); } }
[解决办法]
根本原因我觉得就是同一个参数如'a',既可以作为Character类型被接收,也可以作为float类型被接收,所以当二者在一起,以重载的方式出现时,编译器便会报错
[解决办法]
不能通过编译的原因是f('a','b')对两个方法都匹配
static void f(Character c,Character...characters){
System.out.println("second");
}
=》
static void f(char c,Character...characters){
System.out.println("second");
}
[解决办法]
