gpt4 book ai didi

java - 需要从实现 java.util.Timer 的方法返回一个值

转载 作者:行者123 更新时间:2023-12-01 22:43:29 24 4
gpt4 key购买 nike

我想从下面的方法返回 boolean 值,但它给了我错误消息

"Local variable stopped is access from within inner class;
needs to be declared final."

但是如果我声明 stop 为最终的,我就无法更改它的值。

我知道这是由于计时器造成的。请建议!

public boolean requestTimer(final Club club,final String msisdn, final int time)   {

boolean stopped=false;

new java.util.Timer().schedule(
new java.util.TimerTask() {
@Override
public void run() {
stopped=checkStopped(club,msisdn); //this line has the error
}
}, time);
return stopped;
}

最佳答案

I know it is due to Timer

它与 Timer 无关,与您尝试在内部类中使用局部变量有关。 Java 制作内部类中使用的局部变量的副本,并且如果原始变量未声明为 Final,则这两个变量(原始变量及其副本)可能会发生更改。

But if I declare stopped as final I can't change it's value.

确实。所以你不能这样做。一个可能的解决方案是不使用局部变量。而是使用在类中声明的字段。

关于java - 需要从实现 java.util.Timer 的方法返回一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25724906/

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