Ejemplo n.º 1
0
  /** 直接设置对象属性值, 无视private/protected修饰符, 不经过setter函数. */
  public static void setFieldValue(
      final Object object, final String fieldName, final Object value) {
    Field field = getDeclaredField(object, fieldName);

    if (field == null)
      throw new IllegalArgumentException(
          "Could not find field [" + fieldName + "] on target [" + object + "]");

    makeAccessible(field);

    try {
      field.set(object, value);
    } catch (IllegalAccessException e) {
      logger.error("不可能抛出的异常:{}", e.getMessage());
    }
  }
Ejemplo n.º 2
0
  /** 直接读取对象属性值, 无视private/protected修饰符, 不经过getter函数. */
  public static Object getFieldValue(final Object object, final String fieldName) {
    Field field = getDeclaredField(object, fieldName);

    if (field == null)
      throw new IllegalArgumentException(
          "Could not find field [" + fieldName + "] on target [" + object + "]");

    makeAccessible(field);

    Object result = null;
    try {
      result = field.get(object);
    } catch (IllegalAccessException e) {
      logger.error("不可能抛出的异常{}", e.getMessage());
    }
    return result;
  }