java中char和Character...的转换问题

少司 2015-03-12 10:12:26
先上代码:
public class Test{
/*方法1*/
public static void f(Character l, Character... args){
System.out.println("Character l, Character... args");
}

/*方法2*/
public static void f(Character... args){
System.out.println("Character... args");
}

/*方法3*/
public static void f(float f, Character... args){
System.out.println("float f, Character... args");
}

public static void main(String[] args){
f('a', 'b');//编译错误:“不明确的方法调用”;
}
}

这里,Intellij提示“方法调用出错,有两个方法(1、2)满足匹配”,原因是:开始我以为是,f('a', 'b')同时可以满足方法1、2的签名,所以导致调用出错;然后,我把方法1注释掉,还是提示错误,这个时候变成了方法2、3同时满足匹配了。
问题:难道, 'a'自动装箱成Character和自动转换为int、float、long之间不存在优先级吗?char的转换包括了哪些细节?
其实说白了,就是自动转换和自动装箱的优先级问题
谢谢大家的回复。
...全文
1432 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
商科程序员 2015-03-12
  • 打赏
  • 举报
回复
自动装箱没有优先级,为了避免为些导致的问题。

62,614

社区成员

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

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