मैं अभी संकलक से इस दिलचस्प संदेश में आया हूं और मुझे नहीं पता कि यह क्यों हो रहा है। यहाँ मामलेबटन पर कास्टिंग अनावश्यक है - क्यों?
उदाहरण 1.
Button test = (Button) findViewById(R.id.someButtonId);
test.setOnClickListener(this);
उदाहरण 2.
findViewById(R.id.someButtonId).setOnClickListener(this);
पहले उदाहरण में है, मैं एक वस्तु Button
को findViewById
द्वारा दिया कास्ट करने के लिए की जरूरत है। दूसरे उदाहरण में, मुझे लौटा ऑब्जेक्ट डालना नहीं है क्योंकि मैंने Button
क्लास ऑब्जेक्ट का उपयोग नहीं किया था। अगर मैं
((Button)findViewById(R.id.someButtonId)).setOnClickListener(this);
के माध्यम से इसे डालने का प्रयास करता हूं तो मुझे चेतावनी Casting findViewById(R.id.someButtonId) to Button is redundant
मिल जाएगी।
ऐसा क्यों हो रहा है? मैं कास्ट चेतावनी को हटाने की कोशिश नहीं कर रहा हूं। मैं के पीछे तर्क को जानना चाहता हूं और अगर मैं findViewById
द्वारा लौटाई गई ऑब्जेक्ट के साथ किसी अन्य ऑब्जेक्ट को प्रारंभ करने का प्रयास नहीं करता तो कास्टिंग की आवश्यकता क्यों नहीं है।
http://stackoverflow.com/questions/3502690/remove-redundant-casts-in-java –
@ सैमिर मुझे पता है कि इसे कैसे निकालना है :)। मुझे इसकी आवश्यकता नहीं है। मैं पूछ रहा हूं ** क्यों ** कास्टिंग की आवश्यकता नहीं है। – sandalone
:(मुझे चेतावनी नहीं मिल रही है – Triode