本帖最后由 Teemo_Mann 于 2014-4-17 22:56 编辑
我写这个程序的时候不是完全跟着张老师一步步写的,所以有些地方很容易错,我和大家分享下,顺便问一个问题.
第一个是
NumberMachine类- private static NumberMachine numberMachine = new NumberMachine(); //new这句千万不能写在下面的getInstance方法里,不然每次会初始化Manager,导致一直取到第一个第一个,我调了1小时
- private NumberMachine(){
- }
- public static NumberMachine getInstance(){
- return numberMachine;
- }
复制代码
第二个是张老师的
NumberManager里面,fetch的函数是这么写的
- public synchronized Integer fetchServiceNumber(){
- return queueNumber.remove(0);
- }
复制代码
但是我发现我这么写会报数组越界错误,因为如果queueNumber里面没东西,不会返回null,所以这里不知道是不是JDK版本问题,大家知道的回答一下,所以需要先判断size即
- public synchronized Integer fetchServiceNumber(){
- if (queueNumber.size()>0){
- return queueNumber.remove(0);
- }else{
- return null;
- }
- }
复制代码 |