JAVA中简单问题 在线等
import java.util.*;
//号码管理器
public class NumberManager {
public int lastNumber = 1;
//创建一个集合用来储藏服务号码
private List<Integer> queueNumber = new ArrayList<Integer>();
public synchronized Integer generateNewManager(){
queueNumber.add(lastNumber);
return lastNumber++;
}
public synchronized Integer fetchNumber(){
if(queueNumber.size()>0){
return (Integer)queueNumber.remove(0);
}else{
return null;
}
}
}
这是UI中的监听器
private ActionListener listener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String source = e.getActionCommand();
NumberManager num = new NumberManager();
if("VIP".equals(source)){
System.out.println("VIP"+ num.generateNewManager());
}
}
};
}
为什么输出的信息 总是 "VIP1"; 要求每单击一次按键 就自动加一
------解决方案--------------------你每次都是新new的NumberManager,所以每次都是1咯
------解决方案--------------------把queueNumber定义成全局的试试。。
------解决方案--------------------queueNumber 你应该是给这个参数增加的,但是你输出的是 num ,num每次都是new 的新的,值就没变化。
------解决方案--------------------将NumberManager 中 lastNumber 定义为static