HelloClassFieldsMain

■コード

package pkg;

import java.lang.reflect.Array;

import java.lang.reflect.Field;

public class HelloClassFieldsMain {

String s = "SS";

String[] ss = { "AA", "BB" };

int i = 10;

int[] ii = { 1, 2, 3 };

public void printFields() {

// このオブジェクトのフィールドを取得(private含む)

Field[] fields = this.getClass().getDeclaredFields();

for (int n = 0; n < fields.length; n++) {

Object fieldObject = null;

try {

fieldObject = fields[n].get(this);

} catch (IllegalArgumentException e) {

e.printStackTrace();

} catch (IllegalAccessException e) {

e.printStackTrace();

}

if (fieldObject.getClass().isArray() == false) {

System.out.println(fieldObject.getClass().getName() + ":"

+ fields[n].getName() + "=" + fieldObject.toString());

} else {

int length = Array.getLength(fieldObject);

for (int i = 0; i < length; i++) {

System.out.println(""

+ Array.get(fieldObject, i).getClass().getName()

+ "[" + i + "]" + ":" + fields[n].getName() + "["

+ i + "]" + "=" + Array.get(fieldObject, i));

}

}

}

}

/**

* @param args

*/

public static void main(String[] args) {

HelloClassFieldsMain c = new HelloClassFieldsMain();

c.printFields();

}

}

■実行結果

java.lang.String:s=SS

java.lang.String[0]:ss[0]=AA

java.lang.String[1]:ss[1]=BB

java.lang.Integer:i=10

java.lang.Integer[0]:ii[0]=1

java.lang.Integer[1]:ii[1]=2

java.lang.Integer[2]:ii[2]=3

■メモ

オブジェクトに定義されているフィールドと、その値を出力する