मुझे एक आंतरिक कक्षा के अंदर चर बदलने की आवश्यकता है और मुझे कुख्यात "एक अलग विधि में परिभाषित आंतरिक कक्षा के अंदर एक गैर-अंतिम चर का संदर्भ नहीं दे सकता" त्रुटि।आंतरिक वर्ग गैर-अंतिम परिवर्तनीय जावा
void onStart(){
bt.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
int q = i;
}
});
}
मैं जल्दी से एक वर्ग है कि चीजें मैं नहीं बदल करना चाहता था के सभी आयोजित किए गए और
class temp{
int q;
}
void onStart(){
final temp x = new temp();
bt.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
x.q = i;
}
});
}
यह लगता है कि मैं क्या जरूरत है हो सकता है और इसे करने के लिए आंतरिक कक्षा के बाहर कक्षा का अंतिम संस्करण बनाया काम करता है लेकिन मैं सोच रहा हूं कि इस समस्या के आसपास सही तरीके से काम करना है या नहीं। इसके अलावा, मैं वास्तव में अपनी कक्षा का नाम देने के लिए temp
शब्द का उपयोग करने से नफरत करता हूं। क्या मैंने ऐसा करने के लिए एक वास्तविक प्रोग्रामिंग शब्द है ताकि मैं अपनी कक्षा के लिए एक और वर्णनात्मक नाम बना सकूं?
ब्रावो। दूसरी अच्छी बात यह है कि यह आंतरिक वर्ग अधिक विस्तारणीय और पुन: प्रयोज्य है। आईएमओ, गुमनाम आंतरिक कक्षाएं लगभग हमेशा एक बुरा विचार हैं। – user949300
वे एक ऑफ एक्शन स्टाइल क्लास के रूप में अच्छी तरह से काम करते हैं, विशिष्ट घटनाओं के लिए हैंडलर जिसमें इनपुट के आधार पर क्रियाएं की जा सकती हैं। जीयूआई प्रोग्रामिंग में बहुत आम है, जो उसका उदाहरण है। इस मामले में छोड़कर उन वर्गों के बीच बातचीत है जो मामलों को जटिल बनाती हैं। – Robin
यही वह है जिसे मैं ढूंढ रहा था! धन्यवाद! –