- - PR -
質問です。
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2004-05-26 19:44
とぼけた質問かもしれませんが、
教えてください。 現在、Vectorクラスにデータベースのデータを格納しています。それの取り出し方を教えてほしいのです。 普通にVectorクラスにいれたときはIteratorで取り出せばよいですが、Vectorクラスに下のように定義したときはどうとりだせばよいのでしょうか? Vector goodsdata = new Vector(); while( rs.next() ){ goodsdata.add(new Goods(rs.getString("ID"), rs.getInt("GOODSID"), rs.getString("GOODSNAME"), rs.getInt("PRICE"), rs.getString("FILENAME"))); } Goodsクラスはid,goodsid,goodsname,price,filenameの値を セットするものです。 説明不足の場合は足りないところを教えてください。 よろしくお願いします。 | ||||
|
投稿日時: 2004-05-26 19:49
Vectorの中に入っているのはGoodsクラスのオブジェクトなので普通にIteratorで取り出してキャストすればいいだけではないでしょうか?
スレッドのタイトルは質問の要約にしたほうが見る人には親切だと思います。 | ||||
|
投稿日時: 2004-05-26 20:00
タイトルの件わかりました。
あまり書き込んだことがなかったので、教えてもらってよかったです。 その普通にキャストがよくわからないので教えてもらえませんか? すみません。ちゃんとわかってなくて。 | ||||
|
投稿日時: 2004-05-26 20:10
Iteratorからオブジェクト取り出すときにキャストしていないのですか? こんな感じです。 Goods goods = (Goods)itertor.next(); キャストは、コンパイラに「このオブジェクトはこの型として扱う」ことを教えてあげることです。 | ||||
|
投稿日時: 2004-05-26 20:12
Iterator itr = goodsdata.iterator(); while(itr.hasNext()){ Goods tmp = (Good)itr.next(); // なんか処理 } 念のために言うと、IteratorではなくてArrayList使いましょう。 あと、Goodsクラスはおそらく普通のbeanだと思われるので、 コンストラクタの引数減らしてsetter,getterを使ったほうが綺麗になると思いますよ。 | ||||
|
投稿日時: 2004-05-26 20:25
ukさんSKTさんありがとうございます。
実はさっきの処理をjspで行ってます。 (説明不足ですみません) <jsp:useBean id="goods" class="shopjava.Goods" scope="request" /> <% Vector goodsadd = null; goodsadd = (Vector)request.getAttribute("goods"); Iterator ite = goodsadd.iterator( ); while( ite.hasNext() ){ out.println(ite.next()); goods go = (goods)ite.next(); } %> としましたが、 goods go = (goods)ite.next();でエラーを起こします。 エラーはシンボルを解決できません。なのですが、jspでは自分で作ったクラスのキャストはできないのでしょうか。 | ||||
|
投稿日時: 2004-05-26 20:29
goods go = (Goods)ite.next(); ですよ。キャストはクラス名です。 それからこのくらいのことはちょっと調べればすぐにわかります。 自分で調べる癖をつけましょう。 | ||||
|
投稿日時: 2004-05-26 20:37
すみません。
ありがとうございました。 goods go = (Goods)ite.next(); でも変わりませんでしたが、 もうちょっと自分で考えて見ます。 | ||||
