在内部类中访问局部变量(java)

鲁比:

编译代码后出现两个错误。

错误是:

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);
    }

}

我该如何解决这个错误?

edwardsmatt:

您需要声明

JTextField input = new JTextField("",10);

JComboBox c_age = new JComboBox(age);

像这样:

final JTextField input = new JTextField("",10);

final JComboBox c_age = new JComboBox(age);

这意味着input并且c_age不能更改:

必须在内部类的主体之前明确分配在内部类中使用但未声明的任何局部变量。

摘自Java语言规范的部分-8.1.3内部类和封闭实例

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在内部类修订中访问局部变量“ i”?

来自分类Dev

如何在内部类中更改局部变量的值?

来自分类Dev

如何在内部类Android中访问变量

来自分类Java

在内部类中访问for循环变量

来自分类Dev

在内部类中访问for循环变量的最佳实践

来自分类Dev

如何访问内部类的局部变量

来自分类Dev

静态内部类中的局部变量

来自分类Dev

多次调用后在内部函数中更改非局部变量的结果

来自分类Java

在Java中,当我不在内部类中时,如何访问外部类?

来自分类Java

从方法局部内部类访问局部变量,在该方法中我们声明内部类

来自分类Dev

在内部类中访问变量。需要声明为final。但是我不想声明final

来自分类Java

错误:局部变量imagesLabel从内部类访问; 需要声明的最终(JAVA)

来自分类Java

使Java中的方法返回在内部类中初始化的变量

来自分类Dev

Python:在内部方法内部修改方法局部变量

来自分类Java

Java:使用局部变量的匿名内部类

来自分类Dev

如何使用Java在内部类中调用方法?

来自分类Java

Lambdas与匿名内部类中的局部变量

来自分类Dev

如果在内部类中访问,则在方法中定义的内部类要求在该方法中声明的变量是最终变量。

来自分类Java

内部类和局部变量

来自分类Dev

在Kotlin中,为什么不能在内部类的实例上访问外部类?

来自分类Dev

在内部函数打字稿中访问外部变量

来自分类Android

从函数访问变量并在内部类中使用它

来自分类Java

为什么从JDK 8中可以使局部内部类(在方法内部)可以访问封闭方法的非最终局部变量?

来自分类Dev

方法局部内部类中的合成字段如何链接到方法局部变量的值?

来自分类Java

对内部类的局部变量访问需要声明为final

来自分类Java

匿名内部类中Java局部变量的可见性-为什么需要'final'关键字?

来自分类Dev

如何在内部类中访问类的静态成员?

来自分类Dev

java:从内部类内部访问局部变量循环器;需要声明为final,但随后变量可能尚未初始化

来自分类Java

同步处理资料在内部类的静态变量

Related 相关文章

  1. 1

    在内部类修订中访问局部变量“ i”?

  2. 2

    如何在内部类中更改局部变量的值?

  3. 3

    如何在内部类Android中访问变量

  4. 4

    在内部类中访问for循环变量

  5. 5

    在内部类中访问for循环变量的最佳实践

  6. 6

    如何访问内部类的局部变量

  7. 7

    静态内部类中的局部变量

  8. 8

    多次调用后在内部函数中更改非局部变量的结果

  9. 9

    在Java中,当我不在内部类中时,如何访问外部类?

  10. 10

    从方法局部内部类访问局部变量,在该方法中我们声明内部类

  11. 11

    在内部类中访问变量。需要声明为final。但是我不想声明final

  12. 12

    错误:局部变量imagesLabel从内部类访问; 需要声明的最终(JAVA)

  13. 13

    使Java中的方法返回在内部类中初始化的变量

  14. 14

    Python:在内部方法内部修改方法局部变量

  15. 15

    Java:使用局部变量的匿名内部类

  16. 16

    如何使用Java在内部类中调用方法?

  17. 17

    Lambdas与匿名内部类中的局部变量

  18. 18

    如果在内部类中访问,则在方法中定义的内部类要求在该方法中声明的变量是最终变量。

  19. 19

    内部类和局部变量

  20. 20

    在Kotlin中,为什么不能在内部类的实例上访问外部类?

  21. 21

    在内部函数打字稿中访问外部变量

  22. 22

    从函数访问变量并在内部类中使用它

  23. 23

    为什么从JDK 8中可以使局部内部类(在方法内部)可以访问封闭方法的非最终局部变量?

  24. 24

    方法局部内部类中的合成字段如何链接到方法局部变量的值?

  25. 25

    对内部类的局部变量访问需要声明为final

  26. 26

    匿名内部类中Java局部变量的可见性-为什么需要'final'关键字?

  27. 27

    如何在内部类中访问类的静态成员?

  28. 28

    java:从内部类内部访问局部变量循环器;需要声明为final,但随后变量可能尚未初始化

  29. 29

    同步处理资料在内部类的静态变量

热门标签

归档