gpt4 book ai didi

Java TimerTask 希望变量是最终的

转载 作者:行者123 更新时间:2023-12-02 00:36:02 25 4
gpt4 key购买 nike

无论如何,我正在尝试制作类似聊天程序的东西,有人告诉我使用此代码来检查新消息,同时允许用户提交消息:

timer.schedule(new TimerTask() {

@Override
public void run() {
read.readChat(line);
}
}, 0, 1000);

//Wait for user input
while(true) {
String bar = scan.next();
}

其中read.readChat(line);是显示来自另一个文件的消息的方法。 Java告诉我,readline都必须声明为final...我不明白为什么特别是对于“line” ”因为这是一个变量,我需要改变它。

此外,在我将它们声明为最终版本后,我收到此错误:

unreported exception java.lang.Exception; must be caught or declared to be thrown
read.readChat(salt);

我做错了什么?

最佳答案

第二个错误告诉您,方法 read.readChat(line); 抛出一个 checked 异常,因此您必须捕获。

您不能在匿名内部类中使用在外部类中声明的局部变量。将它们设为final 或将它们声明为字段(实例变量)。

编辑:

@Override
public void run() {
try
{
read.readChat(line);
}catch(Exception ex)
{
ex.printStackTrace();
}
}

关于Java TimerTask 希望变量是最终的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7789226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com