के भीतर एक्सेस किया गया है, मुझे अपना कोड संकलित करने के बाद दो त्रुटियां मिलीं।स्थानीय चर को आंतरिक वर्ग (जावा)
त्रुटियाँ हैं:
:1.
local variable input is accessed within inner class;
needs to be declared final
String name = input.getText();
2.
local variable c_age is accessed within inner class;
needs to be declared final
Object child_age = c_age.getSelectedItem();
यह मेरा कोड है
import javax.swing.*; import java.awt.event.*; public class GUI { public static void main(String[] args) { JFrame frame = new JFrame("Try GUI"); JLabel l1 = new JLabel("Please Enter Your Child's Name"); JTextField input = new JTextField("",10); JLabel l2 = new JLabel("Choose Your Child's Age"); String[] age = {"Age","1","2","3","4","5","6"}; JComboBox c_age = new JComboBox(age); JButton button = new JButton("Search"); JTextArea result = new JTextArea(); JScrollPane extend_area = new JScrollPane(result); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { String name = input.getText(); Object child_age = c_age.getSelectedItem(); } }); JPanel panel = new JPanel(); panel.add(l1); panel.add(input); panel.add(l2); panel.add(c_age); panel.add(button); panel.add(extend_area); frame.add(panel); frame.setSize(350,350); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }
मैं इस त्रुटि को कैसे हल कर सकता हूं?
समस्या हल हो गई। लेकिन मैं आपकी व्याख्या को समझ नहीं पा रहा हूं। आप और अधिक दे सकते हैं ... बहुत बहुत धन्यवाद एडवर्ड – Roubie
जावा भाषा विशिष्टता के लिए एक अंश और लिंक संलग्न, मुझे उम्मीद है कि मदद करता है ... – edwardsmatt
अंतिम की आवश्यकता है ताकि उपयोगकर्ता जब वे आंतरिक कक्षा/बंद द्वारा उपयोग किया जा रहा है चर परिवर्तक नहीं बदल सकता है। इसके बारे में सोचें: यदि इसे अंतिम के रूप में चिह्नित नहीं किया गया है, तो आंतरिक कक्षा संदर्भ घोषणा के बगल में कुछ भी कोड कर सकते हैं, इसलिए आपको इसे समवर्ती समस्याओं से बचने के लिए अंतिम रूप में चिह्नित करना होगा, और सिंटैक्स इसे लागू करता है। –