[JAVA] Überladungsmethode mit Int- und Integer-Argumenten

-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

Überladungsmethode mit Int- und Integer-Argumenten
Wie man ganze Zahlen mit Rubin überprüft
Überladung, wenn Methodenargumente vererbt / implementiert werden
Gleichwertige Beurteilung von Integer und int
Unterschied zwischen int und Integer in Java
[Ruby] Schlüsselwörter mit Schlüsselwörtern und Standardwerten von Argumenten
Vergleiche Integer mit ==
Informationen zum Aufruf-Timing und zu den Argumenten der addToBackStack-Methode
Überprüfen Sie die Argumente für Methodenaufrufe in Blöcken mit RSpec
Formale und tatsächliche Argumente
[Java] Argumente und Parameter
[Java] Überladen und überschreiben
[Ruby] Fragen und Überprüfung der Anzahl der Methodenargumente
Kotlin Post- und Pre-Inkrement und Operatorüberladung (Vergleich mit C, Java, C ++)