Heim >Java >javaLernprogramm >Wie löst Java überladene Methoden auf, wenn ein Nullargument übergeben wird?

Wie löst Java überladene Methoden auf, wenn ein Nullargument übergeben wird?

DDD
DDDOriginal
2024-12-03 07:36:09364Durchsuche

How Does Java Resolve Overloaded Methods When a Null Argument is Passed?

Überladungsauflösung für Nullargumente in Java

Bei der Übergabe von Null als Argument an eine überladene Methode in Java ist es wichtig zu verstehen, um welche Methode es sich handelt wird zum Aufruf ausgewählt.

Betrachten Sie das folgende Beispiel:

JOptionPane.showInputDialog(null, "Write something");

Zwei Überladene Methoden von JOptionPane.showInputDialog existieren:

  • showInputDialog(Component parent, Object message)
  • showInputDialog(Object message, Object initialSelectionValue)

Welche von Diese Überladungen werden aufgerufen, wenn null als übergeordnetes Element übergeben wird Parameter?

Antwort:

Java löst die Überladung nach dem Prinzip der „spezifischsten Methode“ auf. In diesem Fall ist die spezifischste Methode:

showInputDialog(Component parent, Object message)

Diese Regel wird aus dem Überlastungsauflösungsprozess abgeleitet, insbesondere aus dem Schritt „Bestimmen der Methodensignatur“. Der Compiler sucht nach der spezifischsten Methode, die die Eingabetypen verarbeiten kann (in diesem Fall null und String).

Die „spezifischere“ Methode wird basierend darauf bestimmt, ob der Aufruf einer Überladung an eine andere ohne übergeben werden könnte Dies führt zu einem Typfehler bei der Kompilierung. In diesem Beispiel könnte jeder Aufruf der ersten Überladung ohne Fehler an die zweite übergeben werden, aber nicht umgekehrt.

Wenn daher null an JOptionPane.showInputDialog übergeben wird, wird die Überladung mit dem übergeordneten Component-Parameter (der Die spezifischste Methode) wird für den Aufruf ausgewählt.

Das obige ist der detaillierte Inhalt vonWie löst Java überladene Methoden auf, wenn ein Nullargument übergeben wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn