private なフィールドから値を取得/設定する

たまにはブログを書かないと、周りの人から「この人生きてるの…?」という疑問を持たれかねないので無理矢理エントリを上げてみる。
とはいえ、最近忙しくてPHP書けてないのでお仕事してるJavaのコードを貼り付けてみる。
private なフィールドから値を取得・設定するサンプル。

package jp.devworks.sample;

import java.lang.reflect.Field;

public class FieldUtil {

	/**
	 * フィールドの値を取得します。<br />
	 * public/private おかまいなしです。 getter/setter なくても取得可能
	 * 
	 * @param obj
	 *            取得対象オブジェクト
	 * @param name
	 *            取得対象フィールド名
	 * @return フィールドの値
	 */
	public static Object get(Object obj, String name) {
		if (obj == null || name == null) {
			return null;
		}
		Field f = null;
		Object result = null;
		try {
			f = obj.getClass().getDeclaredField(name);
			f.setAccessible(true);
			result = f.get(obj);
		} catch (SecurityException e) {
			e.printStackTrace();
		} catch (NoSuchFieldException e) {
			e.printStackTrace();
		} catch (IllegalArgumentException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		}
		return result;
	}

	/**
	 * フィールドの値を設定します。<br />
	 * public/private おかまいなしです。 getter/setter なくても設定可能
	 * 
	 * @param obj
	 *            設定対象オブジェクト
	 * @param name
	 *            設定対象フィールド名
	 * @param value
	 *            設定する値
	 */
	public static void put(Object obj, String name, Object value) {
		Field f = null;
		try {
			f = obj.getClass().getDeclaredField(name);
			f.setAccessible(true);
			f.set(obj, value);
		} catch (SecurityException e) {
			e.printStackTrace();
		} catch (NoSuchFieldException e) {
			e.printStackTrace();
		} catch (IllegalArgumentException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		}
	}
}

こんなの使うとカプセル化が台無しなので、乱用はダメ、ぜったい。
こういうの書いてると「Javaは便利だなぁ」と思います。