日期:2014-05-20  浏览次数:20647 次

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