n******1 发帖数: 3756 | 1 有两个demo,这里的参数匹配有什么原则,有什么地方写的比较清楚,好像不仅是
autoboxing的问题
//output int 1
public class Demo1{
public static void main(String []args){
short a = 1;
Demo1 demo = new Demo1();
demo.foo(a);
}
void foo(Short x){
System.out.println("Short"+x);
}
void foo(int x){
System.out.println("int"+x);
}
void foo(Integer x){
System.out.println("Integer"+x);
}
}
//output short 1
public class Demo2{
public static void main(String []args){
Short a = 1;
Demo2 demo = new Demo2();
demo.foo(a);
}
void foo(short x){
System.out.println("short"+x);
}
void foo(int x){
System.out.println("int"+x);
}
void foo(Integer x){
System.out.println("Integer"+x);
}
} |
T****U 发帖数: 3344 | 2 widen > box > var-args
【在 n******1 的大作中提到】 : 有两个demo,这里的参数匹配有什么原则,有什么地方写的比较清楚,好像不仅是 : autoboxing的问题 : //output int 1 : public class Demo1{ : public static void main(String []args){ : short a = 1; : Demo1 demo = new Demo1(); : demo.foo(a); : } :
|
n******1 发帖数: 3756 | 3 为什么short不直接匹配到Short var-args呢
【在 T****U 的大作中提到】 : widen > box > var-args
|
T****U 发帖数: 3344 | 4 autobox是1.4才加上的,所以优先照顾以前的程序,先做扩展,没有扩展可以匹配才做
autobox
【在 n******1 的大作中提到】 : 为什么short不直接匹配到Short var-args呢
|
n******1 发帖数: 3756 | |