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
■メモ
オブジェクトに定義されているフィールドと、その値を出力する