का उपयोग कर की चेतावनी है जब Integer.parseInt(String s, int radix)
(8 जावा, 1.8.0_131) के लिए स्रोत कोड देख, मैं निम्नलिखित टिप्पणी ब्लॉक मिला:क्यों parseInt valueOf
/*
* WARNING: This method may be invoked early during VM initialization
* before IntegerCache is initialized. Care must be taken to not use
* the valueOf method.
*/
मैं IntegerCache के बारे में पहले भाग समझते हैं , मुझे समझ में नहीं आता कि valueOf
के बारे में चेतावनी क्यों है, और इस संदर्भ में क्यों।
मुझे लगता है कि valueOf()
parseInt()
पर निर्भर करता है, लेकिन मुझे अभी भी यह चेतावनी नहीं है कि यह चेतावनी क्यों है।
क्या कोई यह बता सकता है कि वास्तव में टिप्पणी मुझे किस बारे में चेतावनी देती है (और संदर्भ जहां valueOf का उपयोग नहीं किया जाना चाहिए), और संभवतः गलत क्या हो सकता है।
संपादित करें:
Integer.valueOf में कोड, (int i) नीचे टिप्पणी से अन्य सवाल के बाद से बदल गया है के लिए कहा गया लगता है यह अब
public static Integer valueOf(int i) {
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
}
और से बचाने की जानी चाहिए पहले दावा त्रुटि।
संभावित डुप्लिकेट [इंटीजर क्लास की Integer.valueOf विधि में क्यों जोर दिया जाता है?] (Https://stackoverflow.com/questions/33891156/why-is-assert-used-in-the-integer- मूल्य-विधि-का-पूर्णांक-वर्ग) – Blasanka
जोर 8 जावा इंटीजर में प्रतीत नहीं होता है।valueOf() @blasanka, क्या आप डुप्लिकेट वोट की व्याख्या कर सकते हैं, या मुझे उस कोड पर इंगित करें जो अभी भी डुप्लिकेट लक्ष्य से जुड़े कोड के बराबर है? – Michael