2012-09-26 11 views
5

अब मैं कुछ लॉग नीचे की तरह मिलता है के बारे में ClassCastException (लॉग-1)गुमनाम वर्ग (जावा)

java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams cannot be cast to ClassA$1 
at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1010) 
... 


लाइन 1010

final LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) obj.method();//line 1010 


मुझे लगता है, लॉग होना चाहिए इस तरह (लॉग -2)

java.lang.ClassCastException: ClassA$1 cannot be cast to android.widget.LinearLayout$LayoutParams 

मैं wannna पता है कि मुझे लॉग -1 क्यों मिलता है, क्या यह सही है?
यदि लॉग-1 सही है, तो मैं इस तरह के अपवाद बनाने के लिए कोड कैसे लिख सकता हूं?

ps: मुझे पता है कि कक्षा $ 1 एक अज्ञात वर्ग है।
ps: मैं एक बंदर की परीक्षा में इस लॉग मिलता है, और यह फिर से प्रकट होना vrey मुश्किल है

कोई मुझे बता:

MyInterface my = ClassA$1;//$1 is an anonymous class which implements MyInterface 
my.getClass().cast(lp); 

तो लॉग लॉग-1
लेकिन क्यों लॉग किया तरह होगा "कास्ट" विधि रेखा को इंगित न करें?
और मैं फ़ोल्डर ढांचे/आधार/कोर की जांच करता हूं, कोई भी विधि "? Java.lang.Class.cast (ऑब्जेक्ट obj)"
किसी भी विचार को कॉल करता है?

+0

ps: मुझे यह लॉग एक बंदर परीक्षण में मिलता है, और यह –

उत्तर

2

मैं उस व्यवहार के लिए तार्किक स्पष्टीकरण के बारे में नहीं सोच सकता। यदि तथ्यों की रिपोर्ट आप उन्हें रिपोर्ट करते हैं, तो मैं सहमत हूं कि त्रुटि संदेश पाठ गलत तरीका है।

तो विकल्प क्या हैं?

  • आप लॉग फ़ाइलों को गलत तरीके से पढ़ रहे हैं।
  • आप स्रोत कोड के गलत संस्करण को देख सकते हैं।
  • आपको एक बग मिल सकती थी ... हालांकि ऐसा कुछ मौलिक के रूप में असंभव लगता है। (सिद्धांत रूप में, बग VM से आने वाला गलत त्रुटि संदेश हो सकता है, स्टैकट्रैक में गलत पंक्ति संख्या, या यहां तक ​​कि एक कंपाइलर बग जो गलत प्रकार का कास्ट करने का कारण बनता है।)
  • यह भी संभव है कि अपवाद स्टैकट्रैक एक नकली है ... हालांकि व्याख्यान पर स्पष्टीकरण सीमाएं।

मेरे सुझाव हैं:

  • एक डिबगर के तहत कोड चलाने की कोशिश करें, और कोड के उस अनुभाग के माध्यम से एकल स्टेपिंग कारण और अपवाद के स्रोत के बारे में अपनी धारणा की पुष्टि करने के।
  • इस व्यवहार के लिए एक एसएससीई बनाएं और देखें कि अन्य लोग इसे पुन: पेश कर सकते हैं या नहीं।
+0

को फिर से दिखाना मुश्किल है। इसे फिर से दिखाना मुश्किल है। मुझे यह त्रुटि बंदर परीक्षण में मिलती है –

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