列挙をIteratorに変換するためのアダプタを作成することに問題があります。次のコードを実行しようとすると、NULLポインタ例外が発生します。列挙をIteratorに変換する
import java.util.Vector;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.Iterator;
public class ConvertEnumeration {
public static void main(String [] args) {
int [] ourArray = {0,1,2,3,4,5,6,7,8,9};
Vector vector = new Vector(Arrays.asList(ourArray));
//Get Enumerator
Enumeration enumerator = vector.elements();
EnumerationToIterator enumToIt = new EnumerationToIterator(enumerator);
while(enumToIt.hasNext()) {
System.out.println(enumToIt.next());
}
}
}
//Convert our enumeration to Iterator!
class EnumerationToIterator implements Iterator {
//Our enumeration
Enumeration enmueration;
//Constructor
public EnumerationToIterator(Enumeration enmueration){
enmueration = this.enmueration;
}
//Our Methods
public boolean hasNext(){
return enmueration.hasMoreElements();
}
public Object next(){
return enmueration.nextElement();
}
public void remove(){
throw new UnsupportedOperationException();
}
}
もう1つの注意点は、最初に作成した後、列挙体からintを印刷できないことです。
ダイスマンではなく、まだゴミを印刷しています:( – TomSelleck
メインクラスのヘルプにジェネリックタイプを追加していますか?更新された回答を参照してください。 – jlordo
試してみました。 ); "コンストラクタVector(リスト)は未定義です –
TomSelleck