有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java JTextField希望在我尝试使用时成为最终版本。getText()

我正在为学校制作这个多人游戏,目前我正在尝试从JTextField中获取用户名

下面是有问题的代码:

JTextField textField = new JTextField();

new Statistics(textField.getText());

统计数据需要一个字符串,但当我尝试此操作时,eclipse告诉我需要将JTextField转换为final

代码是有效的,因为统计目前没有做任何事情,但我认为这不应该发生,并且在稍后我开始实现统计时会破坏我的代码。有什么解释和解决办法吗


共 (1) 个答案

  1. # 1 楼答案

    这个调用:new Statistics(textField.getText());可能发生在内部匿名类中,可能发生在ActionListener中,而您的textField是一个局部变量。问题是,匿名内部类对它们使用的本地字段进行复制,如果这些字段不是最终字段,那么副本可能与原始字段不同步,从而导致各种问题

    我建议您在类中声明textField,而不是在方法或构造函数中,从而使其成为类字段。如果你做了htis,那么你就不必宣布它是最终的

    否则,如果你不能或不应该这样做,那么当然,继续并宣布它(你不能“铸造它”)为最终版本