আমি এই প্রশ্নটি একটি কুইজে এসেছি,
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);
}
}
এই প্রোগ্রামটির আউটপুট "স্ট্রিং সংস্করণ"। তবে কেন আমি বোঝা গেলাম না যে ওভারলোডেড পদ্ধতিতে শূন্যস্থানটি কেন স্ট্রিং সংস্করণটি বেছে নিয়েছিল। নাল কি কোনও স্ট্রিং ভেরিয়েবল কিছুই নির্দেশ করছে?
তবে কোডটি যখন এতে পরিবর্তন করা হয়,
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);
}
}
এটি "সংক্ষেপে ত্রুটি দেয়" পদ্ধতিটি (স্ট্রিংবফার) মানি ক্যালক টাইপের জন্য অস্পষ্ট "