2007/03/04開始。ソフトウェア管理やDelerer SEの作者であるおにぎりくんの試行錯誤の記録です。
- [Vue.js]時計?タイムコードを表示するWebアプリ
- (2021/11/16)
- ポエム
- (2020/09/30)
- メトロノームアプリをリリース
- (2017/04/22)
- Sikulix勉強中:便利関数
- (2017/02/25)
- [JavaFX]学習メモ
- (2016/09/22)
こんにちは。おにぎりくんです。
デザインパターンを学び終え、ソフトウェア管理の制作に入りました。春休みはもう少ししかないのですこし急いでいます。春休みには2.0を完成させたい!
というときに、壁にぶつかってしまったのです。java.util.LinkedListのIteratorを使って全部の要素を出力する部分で、add()したはずの要素がぜんぜん出てこないんです。いろいろ原因を探ったのですが、「何でadd()されないのか」という疑問に答えはありませんでした(もちろんGoogleさんも答えてくれず)。
そこで、GUIはあきらめてCUIに切り替えました。しかしここでも同じ壁が目の前に立ちはだかりました。。。そこでテストプログラムを書きました。
package test;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import cui.Genre;
public class ListTest {
private List<Genre> list = new LinkedList<Genre>();
public void add(String name) {
Genre g = new Genre();
g.setName(name);
g.setPath("new soft path");
list.add(g);
}
public void ls() {
Iterator it = list.iterator();
if(it.hasNext()){
System.out.println(it.next());
}
}
}
CUIプログラムのコピペで作りました。あとはMainクラスからインスタンス化してテストしました。同じ現象がおきました。どこがいけないのでしょう。要素の型がGenre(自分で作ったクラス)だからでしょうか。よく見ると違いました。「add()されない」のではなく、「全要素を出力していない」でした。気づいたのは、list.size()の値でした。上のプログラムで、
if(it.hasNext()){
となっているところを、
while(it.hasNext()){
とすると、見事に壁をのりこえられました。よかった!・・・しょぼい凡ミスですねこれ(-_-)
PR
スポンサード・リンク
この記事にコメントする
フリーソフト指向::開発日記 by LapisCactus
