मैं जावा कंपाइलर के व्यवहार से रहस्यमय हूं जब रैपर वर्ग संदर्भों को प्राइमेटिव्स निर्दिष्ट करता हूं। कृपया नीचे दिया गया कोड देखें। टिप्पणियों वाली रेखाएं संकलित नहीं होती हैं।जावा आदिम से लेकर रैपर वर्गों में कनवर्ट करना
मैं का तर्क समझ में नहीं आता क्यों:
- एक
byte
एकByte
याShort
, लेकिन नहींInteger
याLong
संदर्भ - एक
short
एकByte
याShort
को सौंपा जा सकता को सौंपा जा सकता , लेकिनInteger
याLong
संदर्भ int
कोByte
,पर असाइन किया जा सकता है, याInteger
, लेकिन नहींLong
संदर्भ- एक
long
एकLong
को सौंपा जा सकता है, लेकिन नहींByte
,Short
याInteger
संदर्भ
मैं पैटर्न नहीं देख सकता। इसमें कोई अंतर्दृष्टि वास्तव में उपयोगी होगी। धन्यवाद।
Byte s5 = (byte)7;
Short s6 = (byte)7;
Integer s7 = (byte)7; // Does not compile
Long s8 = (byte)7; // Does not compile
Byte s9 = (short)7;
Short s10 = (short)7;
Integer s11 = (short)7; // Does not compile
Long s12 = (short)7; // Does not compile
Byte s1 = (int)7;
Short s2 = (int)7;
Integer s3 = (int)7;
Long s4 = (int)7; // Does not compile
Byte s13 = (long)7; // Does not compile
Short s14 = (long)7; // Does not compile
Integer s15 = (long)7; // Does not compile
Long s16 = (long)7;
[जेएलएस-5.1.7। बॉक्सिंग रूपांतरण] (http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.1.7)। –
@ElliottFrisch, मैंने बस आपके द्वारा पोस्ट किए गए लिंक को देखा, लेकिन यह वास्तव में मेरे प्रश्न के बिंदु से निपटता नहीं है। – user3516726
मैंने सोचा था कि आपका प्रश्न यह था कि कुछ मुक्केबाजी रूपांतरण क्यों हैं और कुछ नहीं ... कृपया * बिंदु * को स्पष्ट करें। –