打字猴:1.700467077e+09
1700467077 //构造函数传入projectList
1700467078
1700467079 public ProjectIterator(ArrayList<IProject>projectList){
1700467080
1700467081 this.projectList=projectList;
1700467082
1700467083 }
1700467084
1700467085 //判断是否还有元素,必须实现
1700467086
1700467087 public boolean hasNext(){
1700467088
1700467089 //定义一个返回值
1700467090
1700467091 boolean b=true;
1700467092
1700467093 if(this.currentItem>=projectList.size()||this.projectList.get(this.currentItem)==null){
1700467094
1700467095 b=false;
1700467096
1700467097 }
1700467098
1700467099 return b;
1700467100
1700467101 }
1700467102
1700467103 //取得下一个值
1700467104
1700467105 public IProject next(){
1700467106
1700467107 return(IProject)this.projectList.get(this.currentItem++);
1700467108
1700467109 }
1700467110
1700467111 //删除一个对象
1700467112
1700467113 public void remove(){
1700467114
1700467115 //暂时没有使用到
1700467116
1700467117 }
1700467118
1700467119 }
1700467120
1700467121 细心的读者可能会从代码中发现一个问题,java.util.iterator接口中定义next()方法的返回值类型是E,而你在ProjectIterator中返回值却是IProject,E和IProject有什么关系?
1700467122
1700467123 E是JDK 1.5中定义的新类型:元素(Element),是一个泛型符号,表示一个类型,具体什么类型是在实现或运行时决定,总之它代表的是一种类型,你在这个实现类中把它定义为ProjectIterator,在另外一个实现类可以把它定义为String,都没有问题。它与Object这个类可是不同的,Object是所有类的父类,随便一个类你都可以把它向上转型到Object类,也只是因为它是所有类的父类,它才是一个通用类,而E是一个符号,代表所有的类,当然也代表Object了。
1700467124
1700467125 都写完毕了,看看我们的Boss类有多少改动,如代码清单20-8所示。
1700467126
[ 上一页 ]  [ :1.700467077e+09 ]  [ 下一页 ]