- PR -

オブジェクトの中身について

投稿者投稿内容
ダン
会議室デビュー日: 2009/01/26
投稿数: 3
投稿日時: 2009-01-26 11:44
エクリプスを使用しております。
javaはほぼ初心者なのでよろしくお願いします。

list型で返すAPIをlistで受け取ってます。
(返却されたlistにはユーザ定義型のlogoninfoやusrinfoが
addされています。

listのgetよりobjで取得したものの中身を全て表示(
userinfoには.name,.id,.passといったものがあるため)
させたいのですが
どのようにしたらよろしいのでしょうか?
ソースは下記のようにしております。

List usrdt = serchLogon(userid,userpass);
for (int i=0;i<usrdt.size();i++){
Object obj = usrdt.get(i);
System.out.print(obj + "\r");
}

現状だとobjの型名しか表示されないです。
jp.go.api.UserInfo等


hekigyoku
会議室デビュー日: 2008/12/16
投稿数: 17
投稿日時: 2009-01-26 11:53
System.out.println(Objcet)は、デフォルトで
Object.toString()を呼び出します。

したがって、printlnで望む出力がしたければ、それぞれのクラスの
toString()をオーバーライドすればOK。
ダン
会議室デビュー日: 2009/01/26
投稿数: 3
投稿日時: 2009-01-26 12:12
>したがって、printlnで望む出力がしたければ、それぞれのクラスの
>toString()をオーバーライドすればOK。

いまいち、よくわかりません。
具体的には、どういうことなのでしょうか?

obj.getClassを使用?
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2009-01-26 12:18
鸚鵡返しにする前に、まずは

http://www.google.com/search?q=tostring+%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BC%E3%83%A9%E3%82%A4%E3%83%89

こういうところから見てみましょう。
ダン
会議室デビュー日: 2009/01/26
投稿数: 3
投稿日時: 2009-01-26 13:52
なるほど。
なんとなくわかりました。

サブクラスでtostringを用意しないと
いけないのですね。

ちなみに他の方法はないのでしょうか?
サブクラス内にtostringを用意せず
出力できればよいのですが?
あすか
ぬし
会議室デビュー日: 2006/07/12
投稿数: 309
投稿日時: 2009-01-26 14:06
全てのプロパティをgetして出力すればできます。
例えば
System.out.println("name="+userinfo.getName());
こんな感じで並べていけばOKです。

System.out.println(userinfo);
のみで行おうとするならば
toStringのオーバーライドが必須です。

Dai
会議室デビュー日: 2007/05/24
投稿数: 12
投稿日時: 2009-01-26 20:24
toStringの実装は面倒ですよね。
CodeSugarプラグインが便利ですよ。

http://codesugar.sourceforge.net/
hekigyoku
会議室デビュー日: 2008/12/16
投稿数: 17
投稿日時: 2009-01-27 01:21
toString()の実装が最も簡単だと思いますが…

どなたか、何が面倒だと感じさせるのか説明していただけませんか?

スキルアップ/キャリアアップ(JOB@IT)