スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

フィールドを動的に取得する

動的にフィールドを取得する。
インナークラスでフィールドを列挙するメソッドを定義している。


package meta_pg;

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
//Sample008
public class Sample008 {

public static void main(String[] args) throws Exception{
String toString = ToStringBuilder.toString(new Foo008());
System.out.println(toString);
}

public static class ToStringBuilder{
public static String toString(Object o){
StringBuilder sb = new StringBuilder();
sb.append("ClassName:" + o.getClass().getName());

Field[] declaredFields = o.getClass().getDeclaredFields();
try{
sb.append("FieldName:");
for (Field field: declaredFields){
field.setAccessible(true);//privateフィールドにアクセスできるようにする

String crlf = System.getProperty("line.separator");//改行コード
sb.append(crlf);
sb.append(field.getName()+ "=" + field.get(o) );
}
}catch(IllegalAccessException ex){
//ignore
}
return sb.toString();
}
}
}
//Foo008
final class Foo008{
private int foo = 1;

private String bar = "str";

private List baz = new ArrayList();
}



実行結果

ClassName:meta_pg.Foo008FieldName:
foo=1
bar=str
baz=[]

スポンサーサイト
プロフィール

tjnet777

Author:tjnet777
Solaris, VPNのサポート業務を1年

金融系SIerで業務アプリの開発、メンテを3年半

離職して大学院大学 1年生

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。