मैं खोजने की कोशिश करता हूं, लेकिन सभी अस्पष्ट लगते हैं। मुझे ऑब्जेक्ट ओ को डबल में बदलने की आवश्यकता है। क्या सही तरीका पहले स्ट्रिंग में परिवर्तित होता है? धन्यवाद।जावा सही तरीका कन्वर्ट/कास्ट ऑब्जेक्ट डबल
उत्तर
यदि ऑब्जेक्ट डबल नहीं है तो आप किसी ऑब्जेक्ट को Double
पर नहीं डाल सकते हैं।
API देखें।
विशेष रूप से ध्यान दें
valueOf(double d);
और
valueOf(String s);
इन तरीकों में आप एक स्ट्रिंग या डबल आदिम से एक Double
उदाहरण हो रही का एक तरीका प्रदान करते हैं। (रचनाकार भी नहीं; यह देखने के लिए प्रलेखन पढ़ें कि वे कैसे काम करते हैं) जिस वस्तु को आप स्वाभाविक रूप से परिवर्तित करने की कोशिश कर रहे हैं उसे आपको कुछ देना है जिसे दोहराया जा सकता है।
अंत में, ध्यान रखें कि Double
उदाहरण अपरिवर्तनीय हैं - एक बार बनाया गया है कि आप उन्हें बदल नहीं सकते हैं।
new Double(object.toString());
लेकिन यह मेरे लिए अजीब लगता है कि आप ऑब्जेक्ट से डबल तक जा रहे हैं। रूपांतरण के प्रयास से पहले आपको एक बेहतर विचार होना चाहिए कि आप किस वर्ग का ऑब्जेक्ट शुरू कर रहे हैं। आपके पास कोड कोड की समस्या हो सकती है।
ध्यान दें कि यह एक रूपांतरण है, कास्टिंग नहीं।
यदि वस्तु शून्य है, तो यह nullpointerexception फेंक देगा। –
Double.valueOf (object.toString()) कम स्मृति का उपयोग करता है – Loolooii
आप उदाहरण के ऑपरेटर का उपयोग यह जांचने के लिए कर सकते हैं कि यह कास्टिंग करने से पहले एक डबल है या नहीं। फिर आप इसे सुरक्षित रूप से डबल पर डाल सकते हैं। इसके अलावा आप इसे अन्य ज्ञात प्रकारों (उदाहरण के लिए इंटीजर) के खिलाफ परीक्षण कर सकते हैं और फिर वांछित होने पर उन्हें मैन्युअल रूप से डबल में जोड़ सकते हैं।
Double d = null;
if (obj instanceof Double) {
d = (Double) obj;
}
जावा संस्करण 1.7 से पहले आप आदिम प्रकार
double d = (double) obj;
आप एक डबल ठीक
Double d = (Double) obj;
खबरदार करने के लिए एक वस्तु डाल सकता करने के लिए वस्तु डाली नहीं कर सकते, यह एक फेंक कर सकते हैं क्लासकास्ट अपवाद अगर आपकी ऑब्जेक्ट डबल
नहीं है उल्लेख करने लायक भी - यदि आपको 1.5 से पहले पुराने जावा संस्करण का उपयोग करने के लिए मजबूर किया गया था, और आप संग्रह का उपयोग करने की कोशिश कर रहे हैं, तो आप Double
जैसे संग्रह को पैरामीटर करने में सक्षम नहीं होंगे।
आप वर्ग Double
के लिए मैन्युअल रूप से "बॉक्स" होगा जब पार्स करने और कास्टिंग, कुछ इस तरह करने से नए आइटम, और आदिम double
करने के लिए "Unbox" जोड़कर:
LinkedList lameOldList = new LinkedList();
lameOldList.add(new Double(1.2));
lameOldList.add(new Double(3.4));
lameOldList.add(new Double(5.6));
double total = 0.0;
for (int i = 0, len = lameOldList.size(); i < len; i++) {
total += Double.valueOf((Double)lameOldList.get(i));
}
पुरानी स्कूल सूची में केवल Object
होगा और इसलिए Double
पर डाला जाना चाहिए।
इसके अलावा, आप प्रारंभिक जावा संस्करणों में एक उन्नत-के-लूप के साथ सूची के माध्यम से पुन: सक्रिय नहीं हो पाएंगे - केवल फॉर-लूप के साथ।
क्या आपका मतलब है "1.5 से पहले"? यही वह जगह है जहां जेनेरिक और ऑटोबॉक्सिंग पेश की गई थीं। या आप कुछ और मतलब था? –
ओह, आप सही हैं @AlexeyRomanov, मैंने इसे प्रतिबिंबित करने के लिए अपना जवाब संपादित किया है। –
यदि आपका ऑब्जेक्ट एक संख्या का प्रतिनिधित्व करता है, उदाहरण के लिए, जैसे इंटीजर, तो आप इसे किसी नंबर पर डाल सकते हैं और डबलवैल्यू() विधि को कॉल कर सकते हैं।
Double asDouble(Object o) {
Double val = null;
if (o instanceof Number) {
val = ((Number) o).doubleValue();
}
return val;
}
रूपांतरण के लिए इन सभी तरीकों की कोशिश की ->
public static void main(String[] args) {
Object myObj = 10.101;
System.out.println("Cast to Double: "+((Double)myObj)+10.99); //concates
Double d1 = new Double(myObj.toString());
System.out.println("new Object String - Cast to Double: "+(d1+10.99)); //works
double d3 = (double) myObj;
System.out.println("new Object - Cast to Double: "+(d3+10.99)); //works
double d4 = Double.valueOf((Double)myObj);
System.out.println("Double.valueOf(): "+(d4+10.99)); //works
double d5 = ((Number) myObj).doubleValue();
System.out.println("Cast to Number and call doubleValue(): "+(d5+10.99)); //works
double d2= Double.parseDouble((String) myObj);
System.out.println("Cast to String to cast to Double: "+(d2+10)); //works
}
- 1. ऑब्जेक्ट ओरिएंट को एंड्रॉइड प्रोग्राम का सही तरीका क्या है?
- 2. सही तरीका एक वस्तु
- 3. जावा ऑब्जेक्ट int: एक बेहतर तरीका है?
- 4. जावा: तुलना में अलग डबल और डबल
- 5. जावा में कोई तारीख बनाने का सही तरीका क्या है?
- 6. जावा में डबल बनाम डबलव्यू
- 7. ऑब्जेक्ट आईडी द्वारा शार्डिंग, क्या यह सही तरीका है?
- 8. (जावा) ऑब्जेक्ट इनपुटपुट ऑब्जेक्ट
- 9. क्लोजर में इस जावा ऑब्जेक्ट को क्रमबद्ध करने का सही तरीका क्या होगा?
- 10. जावा ऑब्जेक्ट के अंदर देशी पॉइंटर को स्टोर करने का 'सही' तरीका क्या है?
- 11. जावा डबल प्रारंभिकरण
- 12. जावा डबल चेक लॉकिंग
- 13. जावा: डबल बनाम फ्लोट
- 14. डबल। सही परिणाम नहीं दे रहा है
- 15. एक स्ट्रिंग को डबल में बदलें - जावा
- 16. एंड्रॉइड-जावा- ऑब्जेक्ट
- 17. डैपर सही ऑब्जेक्ट/कुल मैपिंग
- 18. जावा में प्रमाणीकृत एन्क्रिप्शन करने का सही तरीका क्या है?
- 19. जावा में पंक्ति गणना खोजने का सही तरीका जेडीबीसी
- 20. जावा में आउटपुटस्ट्रीम को बंद करने का सही तरीका?
- 21. सबसे नकारात्मक डबल
- 22. किसी अन्य मूस ऑब्जेक्ट से मूस ऑब्जेक्ट को तुरंत चालू करने का सही तरीका?
- 23. जावा ऑब्जेक्ट
- 24. जावा विधि ओवरलोडिंग + डबल प्रेषण
- 25. फ्लोट बनाम डबल (जावा में)
- 26. चेक अगर एक डबल जावा
- 27. डबल? = डबल? + डबल?
- 28. जावा सॉकेट/क्रमबद्धता, ऑब्जेक्ट
- 29. जावा में लांग टू डबल से रूपांतरण
- 30. iphone NSManagedObject - deallocing का सही तरीका?
अपने वस्तु की विशेष प्रकार क्या है? क्या यह वास्तव में एक डबल है, या कुछ और? – nos
ऑब्जेक्ट क्या है? क्या यह एक अज्ञात वर्ग या एक डबल क्लास है जिसे ऑब्जेक्ट में टाइप किया गया है। – Rontologist
"मैं खोजने की कोशिश करता हूं, लेकिन सभी अस्पष्ट लगते हैं।" - एक स्पष्ट उत्तर पाने के लिए आपका प्रश्न बहुत अस्पष्ट है। कृपया विस्तार से बताएं। 'ऑब्जेक्ट ओ' क्या है और इरादा क्या है? – Saket