docs: private void parseValue() {
  		// 当值无时，视为空判定
  		if (null == this.value) {
  			this.operator = OPERATOR_IS;
  			this.value = VALUE_NULL;
  			return;
  		}
  
  		// 对数组和集合值按照 IN 处理
  		if (this.value instanceof Collection || ArrayUtil.isArray(this.value)) {
  			this.operator = OPERATOR_IN;
  			return;
  		}
  
  		// 其他类型值，跳过
  		if (false == (this.value instanceof String)) {
  			return;
  		}
  
  		String valueStr = ((String) value);
  		if (StrUtil.isBlank(valueStr)) {
  			// 空字段不做处理
  			return;
  		}
  
  		valueStr = valueStr.trim();
  
  		// 处理null
  		if (StrUtil.endWithIgnoreCase(valueStr, "null")) {
  			if (StrUtil.equalsIgnoreCase("= null", valueStr) || StrUtil.equalsIgnoreCase("is null", valueStr)) {
  				// 处理"= null"和"is null"转换为"IS NULL"
  				this.operator = OPERATOR_IS;
  				this.value = VALUE_NULL;
  				this.isPlaceHolder = false;
  				return;
  			} else if (StrUtil.equalsIgnoreCase("!= null", valueStr) || StrUtil.equalsIgnoreCase("is not null", valueStr)) {
  				// 处理"!= null"和"is not null"转换为"IS NOT NULL"
  				this.operator = OPERATOR_IS_NOT;
  				this.value = VALUE_NULL;
  				this.isPlaceHolder = false;
  				return;
  			}
  		}
  
  		List<String> strs = StrUtil.split(valueStr, StrUtil.C_SPACE, 2);
  		if (strs.size() < 2) {
  			return;
  		}
  
  		// 处理常用符号和IN
  		final String firstPart = strs.get(0).trim().toUpperCase();
  		if (OPERATORS.contains(firstPart)) {
  			this.operator = firstPart;
  			this.value = strs.get(1).trim();
  			return;
  		}
  
  		// 处理LIKE
  		if (OPERATOR_LIKE.equals(firstPart)) {
  			this.operator = OPERATOR_LIKE;
  			this.value = unwrapQuote(strs.get(1));
  			return;
  		}
  
  		// 处理BETWEEN x AND y
  		if (OPERATOR_BETWEEN.equals(firstPart)) {
  			final List<String> betweenValueStrs = StrSpliter.splitTrimIgnoreCase(strs.get(1), LogicalOperator.AND.toString(), 2, true);
  			if (betweenValueStrs.size() < 2) {
  				// 必须满足a AND b格式，不满足被当作普通值
  				return;
  			}
  
  			this.operator = OPERATOR_BETWEEN;
  			this.value = unwrapQuote(betweenValueStrs.get(0));
  			this.secondValue = unwrapQuote(betweenValueStrs.get(1));
  			return;
  		}
  	}