Saya menemukan pertanyaan ini dalam sebuah kuis,
public class MoneyCalc {
public void method(Object o) {
System.out.println("Object Verion");
}
public void method(String s) {
System.out.println("String Version");
}
public static void main(String args[]) {
MoneyCalc question = new MoneyCalc();
question.method(null);
}
}
Output dari program ini adalah "Versi String". Tetapi saya tidak dapat memahami mengapa meneruskan null ke metode yang kelebihan beban memilih versi string. Apakah null variabel String tidak mengarah ke apa-apa?
Namun ketika kode diubah menjadi,
public class MoneyCalc {
public void method(StringBuffer sb) {
System.out.println("StringBuffer Verion");
}
public void method(String s) {
System.out.println("String Version");
}
public static void main(String args[]) {
MoneyCalc question = new MoneyCalc();
question.method(null);
}
}
itu memberikan kesalahan kompilasi yang mengatakan "Metode metode (StringBuffer) ambigu untuk jenis MoneyCalc"