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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 依然小马哥 于 2012-5-24 16:44 编辑

package com.itcast.band;
import java.util.List;
import java.util.ArrayList;
public class NumberManager
{
private int LastNumber = 0;

private List<Integer> queueNumber = new ArrayList<Integer>();

/*用户取号:*/
public Integer generateNewNumber()  //在这里定义成int不可以吗?
{
  /*把用户装到一个集合当中去*/
  queueNumber.add(LastNumber);
  return LastNumber;
}
/*
private List<Integer> queueNumber = new ArrayList<Integer>();
类型 List 不是通用的;不能使用参数 <Integer> 将它参数化
错误:我们上边List导入的应该是util名下的  就能搞定。
  */



/*获取用户的号码
  在这里有一个小的知识点,就是我们如何获取到集合中的元素,我们通过remove()方法就能够获取到*/


/*在这里我有一个小问题:  int  和  Integer  有什么区别哪?*/
public Integer fetchServiceNumber()
{
  if(queueNumber.size()>0)
   return (Integer)queueNumber.remove(0);
  else
   return null;
}


}

()

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

5 个回复

倒序浏览
  1. *在这里我有一个小问题:  int  和  Integer  有什么区别哪?*/
  2. public Integer fetchServiceNumber()
  3. {
  4.   if(queueNumber.size()>0)
  5.    return (Integer)queueNumber.remove(0);
  6.   else
  7.    return null;
  8. }
复制代码
首先你要返回int的话就不能返回null了,就得返回-1或者其他的来证明没有,这样显然不太好,
更主要的还是ArrayList容器里面只能放Integer对象,不能储存基本数据类型,
就算你把int存进去了,那也是自动装箱的过程

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
方法可能返回空,如果为int,会提示类型不正确
        public synchronized Integer fetchNumber(){
                if(queueNumbers.size()>0){
                        return (Integer)queueNumbers.remove(0);
                }else{
                        return null;
                }
        }
回复 使用道具 举报
int  是基本数据类型   Integer 是为int提供的一个封装类。为了方便使用 封装类提供了一些基本数据类型没有的方法,如valueOf()  toString()。
集合只能装对象不能装基本数据类型。所以不能用int
java为每个基本数据类型提供了一个封装类 boolean  Boolean,char  Character,byte  Byte,short  Short,int  Integer,long  Long,float  Float,double  Double
回复 使用道具 举报
int是java提供的8种原始数据类型之一。Java为每个原始类型提供了封装类,Integer是java为int提供的封装类。int的默认值为0,而Integer的默认值为null,即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况。
Integer提供了多个与整数相关的操作方法,例如,将一个字符串转换成整数,Integer中还定义了表示整数的最大值和最小值的常量。

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
/*在这里我有一个小问题:  int  和  Integer  有什么区别哪?*/
public Integer fetchServiceNumber()
{
  if(queueNumber.size()>0)
   return (Integer)queueNumber.remove(0);
  else
   return null;
}

至于是用int还是用Integer是看具体需要:
这个函数用什么返回值,需要看具体调用,由于张老师在后面是判断fetchServiceNumber返回为空就让窗口休息,所以这里需要函数的返回值可以空,另外此函数也可以返回数字,int不能返回空,那么只能用Integer。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马