- - PR -
Commons BeanUtilsの使い方
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2004-03-17 02:27
Commons BeanUtilsの使用方法について、質問があります。
ある特定の文字列から、一定のバイト数ずつ切り取って、 Beanのプロパティに設定していく処理を考えています。 import org.apache.commons.beanutils.*; (中略) public class Test2BeanUtils { public static void main(String[] args) { TestBean bean = new TestBean(); String tmpStr = "ABCDEF002GHI"; Object obj = tmpStr.substring(6, 9); // "002"が取得される PropertyUtils.setProperty(bean, age, obj); //↑でエラーが発生 (省略) } public class TestBean { private String name; private int age; (Setter,Getterは省略) } PropertyUtils.setPropertyの部分で、 "java.lang.IllegalArgumentException: argument type mismatch" というエラーが発生します。 Int型にObject型をセットしようとしているのが、エラーを起こしていると思われるのですが、解決方法がわかりません。 どなたかご存知の方がおりましたら、ぜひ回答をお願いします。 よろしくお願いします。 | ||||
|
投稿日時: 2004-03-17 08:40
Commons BeanUtilsのsetPropertyメソッドは、
セットする値がintやbooleanのようなプリミティブ型の場合 そのラッパークラスでラップして渡してあげる仕様です。 ので、少しコードを修正させていただくと、
のように記述すればよいのではないでしょうか。 (なお、例外処理は割愛させていただきました) これはCommons BeanUtilsというよりはJavaのリフレクションの仕様なので、 詳細はAPIドキュメントのリフレクション周りをご参照ください。 #コードにポカがあったので修正しました。失礼しました。 [ メッセージ編集済み 編集者: ayum 編集日時 2004-03-17 08:58 ] | ||||
|
投稿日時: 2004-03-18 13:16
回答ありがとうございます。
Javaの仕組みが良くわかっていなかったですね… | ||||
|
投稿日時: 2004-03-18 16:05
マルチポストという言葉はご存知? http://www.vc-net.ne.jp/~ytp/bbs/java/bbs18806.html の質問にも答えてくれた人がいるんだから、ちゃんと結論・結果を書いてください。 自分の疑問が解消したらあとは知らない、という人がいるので マルチポストは嫌われるのです。 | ||||
1
