public class CompilerConfuse {
public static void main(String[] args) {
A a =new A();
a.method(null); // error line
}
}
class A
{
public void method(Integer a)
{
System.out.println("In Integer argument method" + a);
}
public void method(Object a)
{
System.out.println("In Object argument method" + a);
}
public void method(String a)
{
System.out.println("In String argument method " + a);
}
}
En méthode Integer et String overload, le compilateur n'a pas pu décider lequel appeler. Pourquoi cela?Pourquoi le compilateur est-il confondu dans la compilation du code Java
Si nous supprimons une méthode de surcharge String ou Integer, cela ne génère pas d'erreur lors du passage de null.
Quelle surcharge pensez-vous qu'il va utiliser? Ceci * est * ambigu. – Carcigenicate