code: public void setValue(final Object targetObj, final Object value) {
          ArgUtils.notNull(targetObj, "targetObj");
          
          if(targetSetter.isPresent()) {
              try {
                  targetSetter.get().invoke(targetObj, value);
              } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
                  throw new FieldAccessException(this, "fail setter value", e);
              }
              
          } else if(targetField.isPresent()) {
              try {
                  targetField.get().set(targetObj, value);
                  
              } catch (IllegalArgumentException | IllegalAccessException e) {
                  throw new FieldAccessException(this, "fail setter field value", e);
              }
              
          } else {
              throw new FieldAccessException(this, "not found setter method or field.");
          }
      }
docs: オブジェクトのフィールドに値を設定する。
  <p>setterが存在する場合は、setterメソッド経由で値を設定します。</p>
  @param targetObj オブジェクト（インスタンス）
  @param value フィールドの値。
  @throws IllegalArgumentException {@literal targetObj == null.}
  @throws FieldAccessException {@literal 値の設定に失敗した場合。}