参数列表问题
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");
}
------解决方案--------------------