में बाइट [] के लिए डेटा प्रकार रेंडरर्स सूची का उपयोग कैसे करें, इसलिए मेरे पास इन सभी बाइट [] हैं, और उनका एन्कोडिंग वर्तमान में डिबगिंग के आधार पर कई अलग-अलग प्रारूपों में से एक हो सकता है। मैं बाइट सरणी के अनुमानों की एक सूची को टॉस करने में सक्षम होना चाहता हूं। मैं इंटेलिजे के डेटा टाइप रेंडरर्स व्यू का उपयोग कर रहा हूं, बाइट [] टाइप करने के लिए रेंडरर को लागू कर रहा हूं, और मैं मुख्य रूप से अभिव्यक्ति बॉक्स की सूची से चिंतित हूं।इंटेलिजे
तो मैंने देखा है कि आप new String(this)
अभिव्यक्ति के साथ नोड कैसे प्रस्तुत कर सकते हैं, हालांकि यह नीचे अभिव्यक्ति दृश्य की सूची में काम नहीं करता है। आखिरकार मैं new String(this, "UTF16")
(या हेक्स या बेस 64 या डब्ल्यू/ई में रूपांतरण करता हूं) जैसे अभिव्यक्ति करना चाहता हूं लेकिन this
अभिव्यक्ति सूची बॉक्स में बाइट [] नहीं दिखता है - वास्तव में, जब मैं (byte[])this
जैसे टाइपकास्ट को आजमाने की कोशिश करता हूं परिणाम Inconvertible types; cannot cast '_Dummy_.__Array__≤T≥' to 'byte[]'
(java.lang.Byte [] के लिए समान व्यवहार कहते हैं)। यह वास्तव में अजीब व्यवहार है, कि एक स्थान पर यह एक बाइट [] है और दूसरे में यह कुछ अपारदर्शी आंतरिक प्रकार है।
काम केवल फ़ील्ड को प्रदर्शित करने में क्या काम करता है - यानी this.length
जैसी अभिव्यक्ति अपेक्षित कार्य करती है। साथ ही, this
जैसी अभिव्यक्ति बस नोड को फिर से प्रस्तुत करती है, इसका दावा है कि इसका प्रकार बाइट [] है और इसकी ऑब्जेक्ट आईडी मूल की आईडी के समान है।
यह लगभग की तरह आइडिया ऑटो बॉक्स में टाइप कोशिश कर रहा है और विफल हो रहा है लगता है। क्या आप सवाल में जोड़ सकते हैं कि क्या होता है यदि आप java.lang.Byte [] में प्राइमेटिव मैन्युअल रूप से मुक्केबाजी करने का प्रयास करते हैं और अभिव्यक्ति का फिर से मूल्यांकन करते हैं? –
कुछ विवरण जोड़ा गया। किसी भी java.lang प्रकार के लिए _Dummy _.__ Array__ से कोई रूपांतरण नहीं है जिसे मैं जानता हूं :-)। –
Kenny