我目前正在玩服务器和客户端。我希望服务器每秒轮询一次当前系统时间。我当前正在使用Swing计时器,将currentTimeMillis()分配回计时器的动作侦听器之外的未初始化的long区域。当前,当我尝试执行此操作时,Eclipse要求我长时间给出最终状态,但是由于需要进行轮询和更改,因此这是不可行的。然后的想法是,将告知这很长的时间通过套接字发送到客户端。如何在当前代码中使用它?或者,如果有更好的方法可以执行此操作,该怎么办?非常感谢您的帮助!

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import java.net.*;

import javax.swing.Timer;


public class Server {


public static void main(String[] args) {

      long time;

      ActionListener listener = new ActionListener(){
          public void actionPerformed(ActionEvent event){
              time = System.currentTimeMillis();
          }
        };
        Timer currentTime = new Timer(1000, listener);
        currentTime.start();
}

}

最佳答案

您可以将time设置为类的字段。 (实际上没有必要将其放置在main中!
或者您可以创建final AtomicLong time = new AtomicLong();

关于java - 将Swing Timer的 Action 监听器中的System.currentTimeMillis()分配回未初始化的long变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14167564/

10-09 00:25
查看更多