使用Java,我正在寻找一种方法来在一个变量发生变化时退出一个函数。想法?
这样的事情:
public class MyServer{
private int port = 6789;
public static void main(String args[]){
startServer(port); // My server is listenning on port 6789 first
}
public void handlePortChange(){
// if 'port' changes, restart server
}
public void setPort(int p) { port = p; }
}
public Class MyServerUI{
JTextField textField;
MyServer server;
// Constructor...
MyServerUI(MyServer s){
server = s;
}
// Method that
public void openUI(){
// My window
JFrame f = new JFrame("My Server");
f.setVisible(true);
// a JtextField
t = new JTextField("New port");
f.add(t);
// a button
JButton b = new JButton("Change port");
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e){
// Changing the port
server.setPort(Integer.parseInt(t.getText()));
// method that restart server if port changes
server.handlePortChange();
}
});
f.add(b);
}
}
答案 0 :(得分:1)
在UI类中,如果端口已更改,则启动新服务器。在处理完所有请求后,让旧服务器死掉。
public void doPortChange() {
MyServer oldServer = this.server;
this.server = startServer(newPort);
oldServer.exitGracefully();
}
这样您的旧服务器将一直服务直到它死亡。编写exitGracefully()作为练习留给用户: - )