我目前正在玩服务器和客户端。我希望服务器每秒轮询一次当前系统时间。我当前正在使用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/