看一下这个overload的参数错误

specimen 2007-11-09 10:58:30
//: initialization/OverloadingVarargs2.java
// {CompileTimeError} (Won't compile)

public class OverloadingVarargs2 {
static void f(float i, Character... args) {
System.out.println("first");
}
static void f(Character... args) {
System.out.print("second");
}
public static void main(String[] args) {
f(1, 'a');
f('a', 'b');
}
} ///:~

以上代码是thinking in java4中的,讲的是variable argument的initialization
两个f method在执行f('a','b')时,会ambiguious
不知道为什么会产生冲突
...全文
91 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ftgreat 2007-11-09
  • 打赏
  • 举报
回复
'a'不也是整数值吗?
specimen 2007-11-09
  • 打赏
  • 举报
回复
no.....在f('a','b')会有compile error
lilifb 2007-11-09
  • 打赏
  • 举报
回复
class   OverloadingVarargs2   { 

static void f(float i,Character args) {
System.out.println( "first");
}

static void f(Character args) {
System.out.print( "second");
}

public static void main(String[] args) {

f(1,'a');
f('a','b');
}
}

程序正确的!!!

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧