package triaina.commons.utils; import java.lang.reflect.Field; import triaina.commons.exception.CommonRuntimeException; import triaina.commons.exception.IllegalAccessRuntimeException; import triaina.commons.exception.IllegalArgumentRuntimeException; import android.util.Log; public final class FieldUtils { private static final String TAG = FieldUtils.class.getCanonicalName(); private FieldUtils() { } public static void setNoException(Object obj, Field field, Object value) { try { set(obj, field, value); } catch (CommonRuntimeException exp) { Log.w(TAG, exp.getMessage() + "", exp); } } public static void set(Object obj, Field field, Object value) { try { if (!field.isAccessible()) field.setAccessible(true); field.set(obj, value); } catch (IllegalArgumentException exp) { throw new IllegalArgumentRuntimeException(exp); } catch (IllegalAccessException exp) { throw new IllegalAccessRuntimeException(exp); } } public static Object get(Object obj, Field field) { try { if (!field.isAccessible()) field.setAccessible(true); return field.get(obj); } catch (IllegalArgumentException exp) { throw new IllegalArgumentRuntimeException(exp); } catch (IllegalAccessException exp) { throw new IllegalAccessRuntimeException(exp); } } }