gpt4 book ai didi

java - 问题 - 无法分配最终局部变量 od,因为它是在封闭类型中定义的

转载 作者:行者123 更新时间:2023-11-30 07:07:31 24 4
gpt4 key购买 nike

当我尝试在方法内或大括号内声明一个变量(如 int),然后我想稍后在大括号外更改变量的值时,它似乎不起作用。我是不是做错了什么?我如何让它工作?我是 Java 的新手,如果这看起来是一个非常基本的问题,我很抱歉。

            Timer t = new Timer();
t.schedule(new TimerTask(){
public void run(){
double od = 0.5;
}
},30000);}

我想稍后在大括号外更改 od 的值。我该怎么做?

最佳答案

代码中的变量 od 是局部变量。就其性质而言,它不能从类外更改。

有多种方法可以达到您想要的效果。一种是用命名类和 od 变量的 setter 替换您定义的匿名类(即大括号内的类):

class MyTimerTask extends TimerTask {
private double od = 0.5;
public void run(){
System.out.println(od);
}
public double getOd() {return od;}
public void setOd(double val) {od = val;}
}
...
MyTimerTask task = new MyTimerTask();
t.schedule(task, 30000);
...
// At this point you can change od
task.setOd(2.3);

关于java - 问题 - 无法分配最终局部变量 od,因为它是在封闭类型中定义的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24873506/

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