package lecture.etc;
import java.lang.reflect.Field;
import jp.avaj.lib.debug.L;
/** リフレクション - フィールド値の取得・設定 Java */
class SetGetFieldValue {
public static void main(String[] args) {
MyClass obj = new MyClass();
Class<?> myClass = MyClass.class;
//
try {
// privateは値を設定できない
L.p("-- privateフィールドの値の設定・取得");
Field f0 = myClass.getDeclaredField("int0");
f0.setInt(obj, 5);
L.p(f0.getInt(obj));
}
catch(Exception ex) {
ex.printStackTrace();
}
//
try {
L.p("-- protectedフィールドの値の設定・取得");
Field f0 = myClass.getDeclaredField("int2");
f0.setInt(obj, 5);
L.p(f0.getInt(obj));
}
catch(Exception ex) {
ex.printStackTrace();
}
//
try {
L.p("-- publicフィールドの値の設定・取得");
Field f0 = myClass.getDeclaredField("int1");
f0.setInt(obj, 5);
L.p(f0.getInt(obj));
L.p("-- 不正な値を設定してみる");
f0.set(obj, "abc");
}
catch(Exception ex) {
ex.printStackTrace();
}
}
static class MyClass {
private int int0;
public int int1;
protected int int2;
}
}
//---------------------------------------------------
//・目次 Javaエトセトラ
// http://blogs.yahoo.co.jp/artery2020/40576157.html
//・目次 - Java入門
// http://blogs.yahoo.co.jp/artery2020/39975776.html
//・目次 - ビジネスパーソンの常識と非常識
// http://blogs.yahoo.co.jp/artery2020/39728331.html
//・目次 - 論理・発想・思考についての考察と鍛え方
// http://blogs.yahoo.co.jp/artery2020/39657784.html
//---------------------------------------------------
import java.lang.reflect.Field;
import jp.avaj.lib.debug.L;
/** リフレクション - フィールド値の取得・設定 Java */
class SetGetFieldValue {
public static void main(String[] args) {
MyClass obj = new MyClass();
Class<?> myClass = MyClass.class;
//
try {
// privateは値を設定できない
L.p("-- privateフィールドの値の設定・取得");
Field f0 = myClass.getDeclaredField("int0");
f0.setInt(obj, 5);
L.p(f0.getInt(obj));
}
catch(Exception ex) {
ex.printStackTrace();
}
//
try {
L.p("-- protectedフィールドの値の設定・取得");
Field f0 = myClass.getDeclaredField("int2");
f0.setInt(obj, 5);
L.p(f0.getInt(obj));
}
catch(Exception ex) {
ex.printStackTrace();
}
//
try {
L.p("-- publicフィールドの値の設定・取得");
Field f0 = myClass.getDeclaredField("int1");
f0.setInt(obj, 5);
L.p(f0.getInt(obj));
L.p("-- 不正な値を設定してみる");
f0.set(obj, "abc");
}
catch(Exception ex) {
ex.printStackTrace();
}
}
static class MyClass {
private int int0;
public int int1;
protected int int2;
}
}
//---------------------------------------------------
//・目次 Javaエトセトラ
// http://blogs.yahoo.co.jp/artery2020/40576157.html
//・目次 - Java入門
// http://blogs.yahoo.co.jp/artery2020/39975776.html
//・目次 - ビジネスパーソンの常識と非常識
// http://blogs.yahoo.co.jp/artery2020/39728331.html
//・目次 - 論理・発想・思考についての考察と鍛え方
// http://blogs.yahoo.co.jp/artery2020/39657784.html
//---------------------------------------------------