以下方法返回输出:在原始int参数方法中。
如果我将show方法的参数类型从int更改为Integer,则返回的输出为:在原始浮点数arg方法中。
有人能帮我理解这种行为吗?
public class TestMethodOverloading {
private void show(int a){
System.out.println("in primitive int arg method");
}
private void show(float a){
System.out.println("in primitive float arg method");
}
public static void main(String[] args) {
TestMethodOverloading tmo = new TestMethodOverloading();
tmo.show(4);
}
}
如果我将show方法的参数类型从int更改为Integer,则返回的输出为:在原始浮点数arg方法中。
public class TestMethodOverloading {
private void show(Integer a){
System.out.println("in Integer arg method");
}
private void show(float a){
System.out.println("in primitive float arg method");
}
public static void main(String[] args) {
TestMethodOverloading tmo = new TestMethodOverloading();
tmo.show(4);
}
}
但是,如果我将第二个方法的参数类型从float更改为Float,则输出再次更改为:在Integer arg方法中
public class TestMethodOverloading {
private void show(Integer a){
System.out.println("in Integer arg method");
}
private void show(Float a){
System.out.println("in primitive float arg method");
}
public static void main(String[] args) {
TestMethodOverloading tmo = new TestMethodOverloading();
tmo.show(4);
}
}
有人能帮我理解这种行为吗?