আমি যেমন এটি বুঝতে পারি, Map
জাভাতে একটি অগভীর অনুলিপি তৈরি করার কয়েকটি উপায় রয়েছে (সম্ভবত অন্যরাও) :
Map<String, Object> data = new HashMap<String, Object>();
Map<String, Object> shallowCopy;
// first way
shallowCopy = new HashMap<String, Object>(data);
// second way
shallowCopy = (Map<String, Object>) ((HashMap<String, Object>) data).clone();
এক উপায়ে অন্য উপায়ে পছন্দ হয়, এবং যদি তাই হয় তবে কেন?
একটি বিষয় উল্লেখযোগ্য যে দ্বিতীয় উপায়টি একটি "চেক না করা কাস্ট" সতর্কতা দেয়। সুতরাং আপনার @SuppressWarnings("unchecked")
চারপাশে পেতে আপনাকে যুক্ত করতে হবে যা কিছুটা জ্বালাময়ী (নীচে দেখুন)।
@SuppressWarnings("unchecked")
public Map<String, Object> getDataAsMap() {
// return a shallow copy of the data map
return (Map<String, Object>) ((HashMap<String, Object>) data).clone();
}