গ্রহণ আমাকে নীচের ফর্মটির একটি সতর্কতা দিচ্ছে:
সুরক্ষা প্রকার: অবজেক্ট থেকে হ্যাশম্যাপে চেক করা কাস্ট
এটি এমন একটি এপিআই-এর কল থেকে যে আমার কোন নিয়ন্ত্রণ নেই যা কোন বস্তুটি দেয়:
HashMap<String, String> getItems(javax.servlet.http.HttpSession session) {
HashMap<String, String> theHash = (HashMap<String, String>)session.getAttribute("attributeKey");
return theHash;
}
তাত্ত্বিকভাবে তারা কমপক্ষে একটি সম্ভাব্য কোড সমস্যা নির্দেশ করে বলে আমি যদি সম্ভব হয় তবে গ্রহগ্রহের সতর্কতাগুলি এড়াতে চাই। যদিও এটিকে নির্মূল করার জন্য আমি এখনও কোনও ভাল উপায় খুঁজে পাইনি। আমি নিজেই কোনও পদ্ধতির সাথে জড়িত একক লাইনটি বের করতে পারি এবং @SuppressWarnings("unchecked")
সেই পদ্ধতিতে যুক্ত করতে পারি, এইভাবে কোডের ব্লক থাকার প্রভাব সীমাবদ্ধ করে যেখানে আমি সতর্কতাগুলি উপেক্ষা করি। আরও ভাল বিকল্প? আমি এই সতর্কতাগুলি গ্রহণ করতে চাই না Eclipse এ।
আমি কোডে আসার আগে এটি সহজ ছিল, তবে তবুও সতর্কতাগুলি উস্কে দিয়েছে:
HashMap getItems(javax.servlet.http.HttpSession session) {
HashMap theHash = (HashMap)session.getAttribute("attributeKey");
return theHash;
}
আপনি হ্যাশ ব্যবহার করার চেষ্টা করার সময় সমস্যাটি অন্য কোথাও ছিল আপনি সতর্কতা পেতে চেয়েছিলেন:
HashMap items = getItems(session);
items.put("this", "that");
Type safety: The method put(Object, Object) belongs to the raw type HashMap. References to generic type HashMap<K,V> should be parameterized.
enum
বা এমনকি উদাহরণস্বরূপ Class<T>
) উপস্থাপন করে তার সাথে দৃ couple়ভাবে জুটি করা হয় , যাতে আপনি এটি তাকান এবং এটি নিরাপদ জানতে পারেন।