hier So ist es in diesem BeispielWas ist der Typ bei null als Methodenargument?
public static void main(String[] args) {
new Stuff(null);
new Stuff("a");
new Stuff(1);
}
und Klasse Stuff ist wie folgt
public class Stuff {
Stuff(Object o){
System.out.println("object");
}
Stuff(String s){
System.out.println("string");
}
}
Der Ausgang ist
string
string
object
Wie funktioniert Java die null
ist ein String
sagen definiert? Wenn ich Stuff
zu
public class Stuff {
Stuff(String s){
System.out.println("string");
}
Stuff(Integer o){
System.out.println("Integer");
}
}
ich Fehler erhalten Kompilierung ändern für Stuff(null)
:
The constructore Stuff(String) is ambigous.
Wieder warum Java "entscheiden" null
ist ein String
?
Da String ist am nächsten zu "null" unter allen anderen: "* Die Java-Programmiersprache verwendet die Regel, dass die spezifischste Methode gewählt wird *". – Maroun
Erwähnenswert ist, dass 'null' keine Zeichenfolge oder ein Objekt oder eine ganze Zahl ist. (Es ist nur das explizite Fehlen von ihnen). –
Da der Kommentar nicht generiert wird: Mögliches Duplikat von http://StackOverflow.com/q/13033037/1864167 –