Properties প্রয়োগ Map<Object, Object> - না Map<String, String>।
আপনি এই নির্মাণকারীকে কল করার চেষ্টা করছেন:
public HashMap(Map<? extends K,? extends V> m)
... সঙ্গে K এবং Vউভয় হিসাবে String।
কিন্তু Map<Object, Object> এটি একটি নয় Map<? extends String, ? extends String>... এতে নন-স্ট্রিং কী এবং মান থাকতে পারে।
এটি কাজ করবে:
Map<Object, Object> map = new HashMap<Object, Object>();
... তবে এটি আপনার পক্ষে তেমন কার্যকর হবে না।
মৌলিকভাবে, Propertiesকখনও কখনও এর সাবক্লাস করা উচিত ছিল না HashTable... এটাই সমস্যা। ভি 1 এর পরে, উদ্দেশ্যটির বিরুদ্ধে থাকা সত্ত্বেও, এটি সর্বদা নন-স্ট্রিং কী এবং মানগুলি সঞ্চয় করতে সক্ষম হয়। পরিবর্তে যদি রচনাটি ব্যবহার করা হত, তবে API এ থাকতে পারে কেবল স্ট্রিং কী / মান দিয়ে কাজ এবং সমস্ত কিছু ঠিকঠাক হত।
আপনি এই জাতীয় কিছু পেতে পারেন:
Map<String, String> map = new HashMap<String, String>();
for (String key : properties.stringPropertyNames()) {
map.put(key, properties.getProperty(key));
}
Hashtable<Object, Object>, এমনকী জিনিস যা স্ট্রিং নয় - এমন কীগুলিও যা স্ট্রিং নয়।