Es gibt 3 println
Methoden in PrintStream
, die einen Referenztyp akzeptieren - println(char x[])
, println(String x)
, println(Object x)
.
Wenn Sie null
übergeben, sind alle 3 anwendbar. Die Überladungsregeln für Methoden bevorzugen die Methode mit den spezifischsten Argumenttypen. Daher wird println(Object x)
nicht ausgewählt. println(char x[])
& println(String x)
- -
Dann kann der Compiler nicht zwischen den ersten beiden wählen, da String
nicht spezifischer als char[]
ist und umgekehrt.
Wenn Sie eine bestimmte Methode auswählen möchten, müssen Sie die Null auf den gewünschten Typ umwandeln.
Zum Beispiel:
System.out.println((String)null);
'System.out.println ((Objekt) null);' –
Mögliches Duplikat von [unable to null übergeben an execute(); Methode von AsyncTask in Android 4.0] (http://stackoverflow.com/questions/10679739/unable-to-pass-null-to-execute-method-of-asynctask-in-android-4-0) – Raedwald
Siehe auch http : //stackoverflow.com/questions/13033037/how-ist-overloaded-method-chosen-when-a-parameter-is-the-literal-null-value – Raedwald