मैं हैशैप्स के एक पुनरावर्ती पेड़ का उपयोग कर रहा हूं, विशेष रूप से हैशमैप मानचित्र जहां ऑब्जेक्ट एक अन्य हैशमैप का संदर्भ है और इसी तरह। यह पुनरावर्ती एल्गोरिदम के आसपास पारित हो जाएगा:जावा जेनिक्स टाइप सुरक्षा चेतावनी रिकर्सिव हैशमैप
foo(String filename, Hashmap<String, Object> map)
{
//some stuff here
for (Entry<String, Object> entry : map.entrySet())
{
//type warning that must be suppressed
foo(entry.getKey(), (HashMap<String, Object>)entry.getValue());
}
}
मैं जानता हूँ कि यह सुनिश्चित करें Object
के लिए प्रकार Hashmap<String, Object>
की है, लेकिन चिढ़ मैं चेतावनी @SuppressWarnings("unchecked")
का उपयोग कर दबाने के लिए है कि कर रहा हूँ।
मैं ऐसे समाधान से संतुष्ट हूं जो assert(/*entry.getValue() is of type HashMap<String, Object>*/)
करता है या जब यह नहीं होता है तो अपवाद फेंकता है। मैं संकलन प्रकार सुरक्षा के लिए जेनेरिक मार्ग नीचे गया और यदि मैं चेतावनी दबाता हूं तो यह उद्देश्य को हरा देता है।
अपनी टिप्पणी के लिए धन्यवाद, KSB
प्रिय वैक्सविंग, मैंने आपके दूसरे सुझाव को लागू करने का अंत किया क्योंकि यह पता चला है कि मुझे किसी अन्य हैशप के संदर्भ के बजाय "नोड" में अतिरिक्त चीजें जोड़ने की आवश्यकता है। यह भी अधिक प्राकृतिक लगता है। मैं सिर्फ जावा के साथ पकड़ने जा रहा हूं, इसलिए आपका पहला सुझाव समझ नहीं सकता - "टी मानचित्र" भाग बढ़ाता है। एक बार फिर धन्यवाद, केएसबी –