5
मुझे समझ नहीं आता क्यों मैं निम्नलिखित कोड के साथ एक चेतावनी हो रही है है: कच्चे प्रकार java.lang.Class
मुझे अनचेक चेतावनी क्यों मिल रही है?
के सदस्य के रूप isAssignableFrom(Class<?>)
को
public static boolean isAssignableFrom(Class clazz, Object o) {
return clazz.isAssignableFrom(o.getClass());
}
अनियंत्रित कॉल जब मैं
isInstance
का उपयोग विधि इसके बजाय (जो मैं समझता हूं उससे समान परिणाम प्रदान करता है), मुझे चेतावनी नहीं मिलती है:public static boolean isAssignableFrom(Class clazz, Object o) { return clazz.isInstance(o); }
धन्यवाद बदलें
कुछ करने के लिए! जवाब ने इसे स्पष्ट किया। लेकिन मुझे लगता है कि रनटाइम पर किसी वस्तु के साथ जांच करने में सक्षम होने के लिए वहां एक प्रकार पैरामीटर का उपयोग करने के बजाय 'ऑब्जेक्ट ओ' को स्थानांतरित करना बेहतर होगा, है ना? – Revolutionair
वास्तव में, टाइप एरर के बाद कोड रनटाइम पर समान होता है (ठीक है, मेरे उदाहरण में एक निहित कलाकार है)। –
मान लें कि मेरे पास 3 कक्षाएं हैं: 'अभिभावक', 'बच्चा अभिभावक', 'रैंडम क्लास' बढ़ाता है। प्रकार पैरामीटर के साथ मैं जांच सकता हूं कि क्या बच्चा अभिभावक से असाइन किया जा सकता है लेकिन मैं इसे RandomClass ('isAssignableFrom (parent.class, new RandomClass()) के लिए करने में सक्षम नहीं होगा;' – Revolutionair