byte
से char
का रूपांतरण जावा भाषा विशिष्टता के paragraph 5.1.4 में वर्णित अनुसार एक व्यापक और संकुचित आदिम रूपांतरण है।
के रूप में JLS का वर्णन करता है, यह एक मध्यवर्ती चरण के माध्यम से किया जाता है; byte
को int
में एक चौड़े आदिम रूपांतरण के माध्यम से परिवर्तित किया गया है और फिर int
को char
में एक संकीर्ण आदिम रूपांतरण के माध्यम से परिवर्तित किया गया है (5.1.3 देखें)।
Paragraph 5.2 बताते हैं जब एक डाली आवश्यक है जब आप एक काम करें:
... अगर अभिव्यक्ति प्रकार byte
, short
के निरंतर अभिव्यक्ति (§15.28) है, char
, या int
:
- एक संकुचन आदिम रूपांतरण यदि चर के प्रकार
byte
है इस्तेमाल किया जा सकता, short
, या char
, और निरंतर अभिव्यक्ति का मान चर के प्रकार में प्रतिनिधित्व योग्य है।
आपका चर b1
वास्तव में एक स्थिर है, लेकिन अपने चर b2
नहीं है, इसलिए इस नियम b1
के लिए लेकिन b2
के लिए नहीं लागू होता है।
तो: क्या आप c
को b1
असाइन कर सकते हैं क्योंकि b1
, एक निरंतर और निरंतर, 1
का मूल्य है एक char
में फिट बैठता है, लेकिन आप एक डाली बिना c
को b2
असाइन नहीं कर सकते क्योंकि b2
एक निरंतर नहीं है।
सामान्य रूप से, बाइट्स से वर्णों तक कास्टिंग और इसके विपरीत एक अच्छा अभ्यास नहीं है क्योंकि यह एन्कोडिंग को अनदेखा करता है। – Necreaux