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