Scusate per il titolo.
Perchè il seguente codice stampa "String" e non "Object":
Visto che il seguente codice stampa "no" e non "si":codice:public class Test { public void mioMetodo(Object o) { System.out.println("Object"); } public void mioMetodo(String s) { System.out.println("String"); } public static void main(String[] args) { Test t = new Test(); t.mioMetodo(null); } }
Inoltre se ragruppo in un solo test entrambi i risultati mi da "String - no"codice:public class Test2 { public static void main(String args[]) { String s = null; if (s instanceof String) System.out.println("si"); else System.out.println("no"); } }
Graziecodice:public class Test3 { public void mioMetodo(Object o) { System.out.print("Object - "); } public void mioMetodo(String s) { System.out.print("String - "); if (s instanceof String) System.out.println("si"); else System.out.println("no"); } public static void main(String[] args) { Test t = new Test(); t.mioMetodo(null); } }

Rispondi quotando