2010-02-19 11 views
68

सेट करना मैं जे 2 एमई में एक छोटा कोड लिख रहा हूं। मेरे पास एक विधि setTableId(Short tableId) है। अब जब मैं setTableId(100) लिखने की कोशिश करता हूं तो यह संकलन समय त्रुटि देता है। मैं एक और छोटा चर घोषित किए बिना लघु मूल्य कैसे सेट कर सकता हूं?लघु मूल्य जावा

Long मान सेट करते समय मैं setLongValue(100L) का उपयोग कर सकता हूं और यह काम करता है। तो, L का अर्थ यहां क्या है और Short मान के लिए वर्ण क्या है?

धन्यवाद

+0

'एल' एक 'लंबी' शाब्दिक संकेत देने के लिए उपयोग किया जाने वाला एक प्रत्यय है। – missingfaktor

उत्तर

106

जावा पूर्णांक अक्षरों में टाइप int int हैं जब तक कि वे अक्षर 'एल' या 'एल' से ग्रस्त नहीं होते हैं (पूंजी एल को कम केस एल के रूप में प्राथमिकता दी जाती है, संख्या 1 से अलग होना मुश्किल होता है) । यदि एल के साथ प्रत्यय होता है, तो शाब्दिक प्रकार लंबे होते हैं।

प्रत्यय जावा भाषा विशिष्टता में कोई विशेष नाम नहीं है। न तो किसी अन्य पूर्णांक प्रकार के लिए प्रत्यय है। तो अगर आप कम या बाइट शाब्दिक की जरूरत है, वे casted किया जाना चाहिए:

byte foo = (byte)0; 
short bar = (short)0; 

setLongValue (100 एल) में आप जरूरी एल प्रत्यय शामिल करने के लिए क्योंकि इस मामले में पूर्णांक शाब्दिक स्वचालित रूप से लंबे समय के लिए चौड़ी है नहीं है। इसे जावा भाषा विशिष्टता में आदिम रूपांतरण को चौड़ा करना कहा जाता है।

+12

अन्य प्रकारों के लिए प्रत्यय भी हैं: 'd' /' D' 'डबल' और 'f'/'F' बनाता है एक फ्लोट बनाता है! –

+4

इसके अलावा: आकार में फिट होने वाले अक्षर को कास्ट करने की आवश्यकता नहीं है: आपके दो उदाहरण कलाकारों के बिना भी काम करते हैं। –

+0

आप दोनों पर सही हैं। मुझे और स्पष्ट होना चाहिए था कि मैं यहां पूर्णांक अक्षरों के बारे में बात कर रहा हूं, फ्लोटिंग-पॉइंट लिटरल के बारे में नहीं। – Lauri

7

आप setTableId((short)100) उपयोग कर सकते हैं। मुझे लगता है कि यह जावा 5 में बदला गया था ताकि लक्ष्य के लिए बाइट या शॉर्ट और सीमा के भीतर आवंटित संख्यात्मक अक्षर स्वचालित रूप से लक्षित प्रकार माना जा सके। हालांकि नवीनतम जे 2 एमई जेवीएम जावा 4 से व्युत्पन्न हैं।

+0

पीएस: जे 2 एमई के लिए कोडिंग के मध्य आयु के दर्द में फंस गया है। वर्ष 2000 डेस्कटॉप तक पकड़ने के लिए हाथ से आयोजित उपकरणों की प्रतीक्षा नहीं कर सकता। –

+3

कोई "जे 4" (और नहीं "जे 5" है। कृपया जावा संस्करण/नामकरण योजना को पहले से कहीं ज्यादा भ्रमित नहीं करें। –

+1

@ जोआचिम: जावा 1, जावा 2, जावा 5, जावा 6 और जावा 7 अच्छी तरह से ज्ञात हैं और इन्हें संदर्भित किया गया है; जावा 3 और जावा 4 के अर्थ का विस्तार करना बहुत कठिन नहीं है। "जेएन" बस स्पष्ट रूप से संक्षिप्त नाम है। सभी संस्करणों के लिए सूर्य के वर्तमान (और उम्मीदवार अंतिम) नामकरण को अपनाना भ्रम। –

23

बाइट या लघु शाब्दिक जैसी कोई चीज़ नहीं है। आपको (short)100

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