code: private static Object convertSingleValue(final String val) {
  		String value = StringUtils.trim(val);
  		if (StringUtils.isEmpty(value)) {
  			return null;
  		} else if ("[NULL]".equalsIgnoreCase(value)) {
  			return null;
  		} else if ("[EMPTY]".equalsIgnoreCase(value)) {
  			return "";
  		} else if (value.startsWith("'") && value.endsWith("'")) {
  			// ''で囲まれた値は文字列として扱う。空白を含むこともできる。 ex) 'This is a pen'
  			return value.substring(1, value.length() - 1);
  		} else if (Boolean.TRUE.toString().equalsIgnoreCase(value)) {
  			return Boolean.TRUE;
  		} else if (Boolean.FALSE.toString().equalsIgnoreCase(value)) {
  			return Boolean.FALSE;
  		} else if (NumberUtils.isCreatable(value)) {
  			return NumberUtils.createNumber(value);
  		} else {
  			try {
  				// 日時に変換できるか
  				return new Timestamp(DateUtils.parseDateStrictly(value, "yyyy-MM-dd'T'HH:mm:ss").getTime());
  			} catch (ParseException ex) {
  				// do nothing
  			}
  
  			try {
  				// 日付に変換できるか？
  				return new java.sql.Date(DateUtils.parseDateStrictly(value, "yyyy-MM-dd").getTime());
  			} catch (ParseException ex) {
  				// do nothing
  			}
  
  			try {
  				// 時刻に変換できるか？
  				return new Time(DateUtils.parseDateStrictly(value, "HH:mm:ss").getTime());
  			} catch (ParseException ex) {
  				// do nothing
  			}
  			return value;
  		}
  	}
docs: パラメータで渡された単独の値を型変換する
  
  @param val 値の文字列
  @return 変換後オブジェクト