A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 Teemo_Mann 于 2014-4-17 22:56 编辑

我写这个程序的时候不是完全跟着张老师一步步写的,所以有些地方很容易错,我和大家分享下,顺便问一个问题.
第一个是
NumberMachine类
  1.         private static NumberMachine numberMachine  = new NumberMachine(); //new这句千万不能写在下面的getInstance方法里,不然每次会初始化Manager,导致一直取到第一个第一个,我调了1小时
  2.         private NumberMachine(){
  3.         }
  4.         public static NumberMachine getInstance(){
  5.                 return numberMachine;
  6.         }
复制代码


第二个是张老师的
NumberManager里面,fetch的函数是这么写的
  1.         public synchronized Integer fetchServiceNumber(){
  2.         return queueNumber.remove(0);
  3.         }
复制代码


但是我发现我这么写会报数组越界错误,因为如果queueNumber里面没东西,不会返回null,所以这里不知道是不是JDK版本问题,大家知道的回答一下,所以需要先判断size即
  1.         public synchronized Integer fetchServiceNumber(){
  2.                 if (queueNumber.size()>0){
  3.                         return queueNumber.remove(0);
  4.                 }else{
  5.                         return null;
  6.                 }
  7.         }
复制代码

评分

参与人数 1技术分 +1 收起 理由
菜小徐 + 1

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马