स्काला में डबल परिशुद्धता संख्या के 2 निरूपण कर रहे हैं, एक एक AnyVal
, अन्य AnyRef
है। JVM पर वे क्रमशः double
और कक्षा java.lang.Double
पर मैप किए गए हैं।मैं शुद्ध स्कैला में बॉक्स किए गए डबल का प्रतिनिधित्व कैसे करूं?
अब क्या JVM के अलावा अन्य प्लेटफार्मों पर क्या होता है? मैं आदिम के लिए Scala.Double
का उपयोग कर सकता हूं, लेकिन मैं कैसे निर्दिष्ट करूं कि मुझे java.lang.Double
निर्दिष्ट किए बिना बॉक्स किए गए डबल का संदर्भ चाहिए?
[संदर्भ - थॉमसज़ के उत्तर को समझने के लिए छोड़ दिया गया, लेकिन मौलिक मुद्दा नहीं।
class MyPanel(id: String) extends Panel(id) {
@SpringBean(name="rxAlarmLimitDb") var alarmLimitDb: Double = _
अगर मैं के रूप में ऊपर scala.Double
के रूप में प्रकार निर्दिष्ट, इंजेक्टर, विफल रहता है, क्योंकि यह केवल वस्तुओं इंजेक्षन कर सकते हैं:
मैं एक डबल है कि मैं एक विकेट घटक में वसंत के साथ इंजेक्षन करना चाहते हैं।
अगर मैं java.lang.Double
क्षेत्र के प्रकार के रूप में निर्दिष्ट करते हैं, सब कुछ ठीक है
class MyPanel(id: String) extends Panel(id) {
@SpringBean(name="rxAlarmLimitDb") var alarmLimitDb: java.lang.Double = _
लेकिन मैं जावा एपीआई पर वापस गिरने पर मेरे डिपेंडेंस कम करने के लिए कोशिश कर रहा हूँ, तो मैं कैसे बॉक्सिंग Double
का प्रतिनिधित्व करते हैं इसके बिना? ]
मेरा अनुमान है java.lang को देखने के लिए नहीं करना होगा कि बॉक्स्ड डबल * है * 'java.lang.Double' - जैसे स्कैला कई अन्य चीजों के लिए जावा क्लासेस का उपयोग करता है (AnyRef = java.lang.Object, स्ट्रिंग = java.lang.String)। हालांकि, मैं निश्चित रूप से नहीं जानता। – Owen
@ ओवेन आप सही हैं। –
वे कथन JVM पर सत्य हैं। सीएलआर पर अलग-अलग मैपिंग हैं, और मैं जानना चाहता हूं कि बॉक्सिंग डबल का प्रतिनिधित्व कैसे करें। –