-AutoBoxing wurde von JDK1.5 eingeführt. Beispielsweise werden int und Integer automatisch konvertiert. Gleiches gilt für Methodenaufrufe. Sie können die Methode int argument mit Integer aufrufen und umgekehrt. Es ist sehr praktisch.
・ Dann das Problem. -Was passiert, wenn die Argumente mit einer Methode mit demselben Namen als int und Integer definiert sind? ・ Liegt ein Kompilierungsfehler vor? ・ Wenn nicht, wie können sie angerufen werden?
・ Notieren Sie die Schlussfolgerungen -Methoden mit demselben Namen können mit int- bzw. Integer-Argumenten definiert werden. ⇒ Das heißt, es kann überlastet werden ・ Auf der Aufruferseite werden sie beim Aufruf mit int oder Integer ordnungsgemäß aufgerufen.
Tips0005.java
package jp.avaj.lib.algo;
import jp.avaj.lib.test.L;
public class Tips0005 {
public static void main(String[] args) {
//Rufen Sie method0 mit int auf
method0(1);
//Rufen Sie method0 mit Integer auf
method0(new Integer(10));
//Rufen Sie method1 mit int auf
method1(1);
//Rufen Sie method1 mit Integer auf
method1(new Integer(10));
//Bis zu diesem Punkt ist das Ergebnis natürlich..
//Rufen Sie method2 mit int auf
method2(1);
//Rufen Sie method2 mit Integer auf
method2(new Integer(10));
}
/**Methode des int-Arguments*/
private static void method0(int v) {
L.p("intMethod0:"+v);
}
/**Ganzzahlige Argumentmethode*/
private static void method1(Integer v) {
L.p("integerMethod1:"+v);
}
/**Methode des int-Arguments*/
private static void method2(int v) {
L.p("intMethod2:"+v);
}
/**Ganzzahlige Argumentmethode*/
private static void method2(Integer v) {
L.p("integerMethod2:"+v);
}
Wenn Sie sich die Ergebnisse ansehen, werden sie ordnungsgemäß aufgerufen. Apropos natürlich, es ist natürlich, aber Bestätigung, dass es natürlich ist.
Aber ist es ein Problem, dass beide definiert werden können? Vielleicht habe ich nicht bemerkt, dass ich beide definiert habe, und es gab keinen Fehler.
Ausführungsergebnis
intMethod0:1
intMethod0:10
integerMethod1:1
integerMethod1:10
intMethod2:1
integerMethod2:10
Recommended Posts