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
				
	
				
			