java - 在 Timer 中使用变量

标签 java

我正在开发一个仅在调用函数时才打印时间的程序。我正在使用计时器来连续添加秒数。

    Timer gameTimer = new Timer (); 

    TimerTask time =  new TimerTask() { 
       int sec = 0; 
        public void run()
        {
            sec++;
        }
    };

    gameTimer.scheduleAtFixedRate(time, 1000, 1000); 

但是,我不能在 run() 之外使用变量 sec,所以我可以打印它。我试图将 sec 放在 TimerTask 之外,但当然 sec++ 不起作用。有什么帮助吗?谢谢!

最佳答案

只需在原有界面的基础上制作自己的界面即可。 https://docs.oracle.com/javase/tutorial/java/IandI/nogrow.html

interface CustomTimerTask extends TimerTask {
    public int getTicks();
}

CustomTimerTask time =  new CustomTimerTask () { 
   int sec = 0;
    @Override 
    public void run()
    {
        sec++;
    }

    @Override
    public synchronized int getTicks() {
        return sec;
    }
};

System.out.println("The time passed is: " + time.getTicks());

只需确保同步即可,因为您现在正在使用两个线程。

关于java - 在 Timer 中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44669275/

相关文章:

java - 从方法返回 Java 有界通用对象

java - 从 jasperserver 更新报告

java - NoSuchMethodError : org. springframework.data.repository.config.RepositoryConfigurationSource.getAttribute 错误

java - 用java读取文件属性

java - 每 500 毫秒平滑渲染 Swing 组件

java - 在 Hybris Commerce 上的 AbstractOrder 中添加自定义值 - AddtoCartFunction

java - 可以用mockito验证以匿名内部类作为参数的方法调用吗?

java - 有状态的 ejb/容器如何知道当前客户端是上一个客户端?

java - IntelliJ IDEA maven 运行/调试配置,maven 目标已运行但应用程序未自动运行

java - Android sqlite 数据库 - 如何显示 ListView 在滚动末尾添加 “Load more items”