public class TestMain {
public static void methodTest(Exception e) {
System.out.println("Exception method called");
}
public static void methodTest(Object e) {
System.out.println("Object method called");
}
public static void methodTest(NullPointerException e) {
System.out.println("NullPointerException method called");
}
public static void main(String args[]) {
methodTest(null);
}
}
wyjściowa: metoda NullPointerException nazywaWiele przeciążonych metod: Czy wartość pusta równa się wyjątkowi NullPointerException?
Co się stanie, jeśli użyjesz 'methodTest ((Object) null);'? lub 'methodTest ((wyjątek) null);'? – MadProgrammer
, jeśli użyto metody methodTest ((Object) null), wówczas wynikiem jest "Metoda obiektu nazwana". , jeśli użyto metody methodTest ((wyjątek)), wówczas wynikiem jest "Wyjątek". –
Tak więc 'null' nie jest' NullPointerException', dlaczego kompilator decyduje się wywołać tę metodę, gdy wywołanie jest niejednoznaczne, nie wiem. – MadProgrammer