2011-08-31 16 views
22

एक ऑब्जेक्ट को दो बार कास्ट करना और इन दोनों विधियों को देखा। मैं देखता हूं कि 1.2 से बाद में पार्स डबल है। यह विधि क्यों जोड़ें यदि यह अनिवार्य रूप से वैल्यूऑफ (एस) के समान कार्यक्षमता करता है?डबल .valueOf (ओं) बनाम Double.parseDouble

+0

इसे देखें: http://stackoverflow.com/q/10577610/779408 – breceivemail

उत्तर

31

parseDouble() एक आदिम double मान देता है। valueOf() रैपर वर्ग Double का एक उदाहरण देता है। जावा 5 से पहले ऑटोबॉक्सिंग शुरू हुई, यह एक बहुत ही महत्वपूर्ण अंतर था (और कई लोग तर्क देंगे कि यह अभी भी है)।

+0

नाइस मैंने अभी कुछ ओवरलोडिंग के माध्यम से अंतर खोजा है। अब ऑटोबॉक्सिंग – Will

+4

@Will को देखने के लिए: अब मुझे पुराना लगता है ... –

10

क्योंकि यह वही नहीं है। valueOf() एक Double ऑब्जेक्ट बनाता है जिसे अक्सर आवश्यकता नहीं होती है। parseDouble() नहीं करता है। ऑटोबॉक्सिंग के साथ यह valueOf(String) है जिसे अब आवश्यक नहीं है, लेकिन इसलिए पिछड़ा संगतता है।

4

यदि आपको केवल मूल्य (आदिम) parseDouble(String s) का उपयोग करने की आवश्यकता है तो लागत कम है। valueOf(String s) एक डबल क्लास देता है जो आदिम डबल वैल्यू को लपेटता है।

संबंधित मुद्दे