アプリ版:「スタンプのみでお礼する」機能のリリースについて

HashMapの使い方について教えてください。
DBのテーブルから、「SEMINAR_TITLE」「SEMINAR_PRESENTER_NAME」「SEMINAR_NUM」の
値を取得して、HashMapにセットしようと考えてます。
「SEMINAR_NUM」だけ、数値型となっており、他の2つは文字列となっています。
-------------------------------------------------------------------------------------------
HashMap seminar_list = new HashMap();

//DBから値を取得して、seminar_listにセットする。
seminar_list = dbControl.get_SEMINAR_LIST("001");

String seminar_title = (String)seminar_list.get("SEMINAR_TITLE");
String seminar_presenter_name = (String)seminar_list.get("SEMINAR_PRESENTER_NAME");
int seminar_num = (int)seminar_list.get("SEMINAR_NUM");
-------------------------------------------------------------------------------------------

のような式を書いてみましたが、
int seminar_num = (int)seminar_list.get("SEMINAR_NUM");
のところでエラーとなってしまいます。
(他の2つの値は取得する事ができています)

数値データを取り出すにはどのようにすればよいのでしょうか?

よろしくお願いいたします。

A 回答 (3件)

すいません、抜けておりました。


>もしくはHashMapからオブジェクトとして取ってきて、その後IntegerのparseInt()を使うとうまくいきます。

ここはObject型で取った後String型に変換しないといけませんでした。

Object o = seminar_list.get("SEMINAR_NUM");
String str = String.valueOf(o);
int num = Integer.parseInt(str);

という感じで。まぁ、こっちよりIntegerでput()したほうが確実ですね。
    • good
    • 0
この回答へのお礼

ご回答いただいた方法でエラーなく、値を取得する事ができました。
ありがとうございました。

お礼日時:2008/07/14 13:50

>HashMap get_SEMINAR_LIST(String id)


ここでDBから取ってきた数値をIntegerにしてputすれば
Integer seminar_num = (Integer)seminar_list.get("SEMINAR_NUM");
でエラーが表示されずうまくいきます。

もしくはHashMapからオブジェクトとして取ってきて、その後IntegerのparseInt()を使うとうまくいきます。
    • good
    • 0

(int)ではなく、(Integer)でもダメだろうか?

    • good
    • 0
この回答へのお礼

ご回答、ありがとうございます。

Integer seminar_num = (Integer)seminar_list.get("SEMINAR_NUM");

と修正していましたが、

java.lang.ClassCastException

エラーとなってしまいました。


ちなみに、
dbControl.get_SEMINAR_LIST("001")
の箇所において、

java.util.HashMap get_SEMINAR_LIST(String seminar_id)
として値を取得するよう設定しSELECT文で複数項目の値を取得するように設定しているのですが、

その箇所を
int get_SEMINAR_num(String seminar_id)
に変更してSELECT文でSEMINAR_NUMの値だけを取得するようにすれば正常に値を取ることができます。

何かわかりますでしょうか?
(何か確認したほうが良い点ありますか?)

よろしくお願いいたします。

お礼日時:2008/07/14 11:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!