传递给带有Integer和float参数的方法的int值

时间:2019-05-15 18:05:55

标签: java oop

class Demo {
    void methoda(Integer a) {
        SOP("integer");
    }
    void methoda(float a) {
        SOP("float");}
}

class test{
    P S V main(String[] args) { 
        Demo a=new Demo();
        a.methoda(3);
    }
}

为什么该程序的输出是“ float”而不是“ Integer”?

1 个答案:

答案 0 :(得分:0)

3是原始类型int,JVM首先将其扩展为float,而不是将其包装到Integer

  

在Java方法中进行重载时,当   重载的方法找不到其完全匹配的签名。在那里面   情况下,当找不到完全匹配时,JVM将方法与   比参数宽的最小参数。

     

Wilding击败了拳击,因为自动装箱功能已添加到Java中   J2SE 5.0版本。因此,Java 5的设计师认为   代码不应中断,并且应按以前的方式运行。以来   扩展能力已经存在;因此,重载方法   优先考虑扩大拳击。

http://cs-fundamentals.com/java-programming/method-overloading-in-java.php