während ich durch Autoboxing und Unboxing in Java ging, lernte ich, dass Java primitive Datentypen in Wrapper-Klasse und umgekehrt konvertiert, wann immer es nötig ist. z.B. Wenn die Funktion Integer
als Parameter verwendet, wenn wir den Wert 1
übergeben, konvertiert der Java-Compiler sie in new Integer(1)
. jetzt unten ist mein Fall.Warum unterstützt Java das Überladen von Funktionen für primitive Datentypen?
public class JavaTest
{
public static void Test(Integer integer)
{
System.out.println("in Integer");
}
public static void Test(int integer)
{
System.out.println("in int");
}
public static void main(String[] args)
{
Test(1);
}
}
In diesem Fall sollte Java Kompilierungszeit Ausnahme ausgelöst haben. aber es erfolgreich kompiliert und Druck unterhalb Ergebnis
in int
wenn ich entfernt den Test (int integer) Methode dann java gibt führe ich
in integer
meine Frage ist, warum Java solche Funktion Überladung erlaubt?
nicht seine nicht duplizieren – Abhijit
ja, es irgendwie ist. Sie müssen zuerst den Unterschied zwischen Klassen- und Primitivtypen verstehen. – Vucko
Ich denke, es ist ähnlich, aber kein Duplikat - schauen Sie sich den Kontext hier an. – Mena