This commit is contained in:
Looly 2021-02-26 23:18:05 +08:00
parent 32c4952d31
commit e3c1852c4d
3 changed files with 35 additions and 23 deletions

View File

@ -473,8 +473,9 @@ public class Condition extends CloneSupport<Condition> {
final String firstPart = strs.get(0).trim().toUpperCase();
if (OPERATORS.contains(firstPart)) {
this.operator = firstPart;
// 比较符号后跟大部分为数字此处做转换
this.value = tryToNumber(strs.get(1));
// 比较符号后跟大部分为数字此处做转换IN不做转换
final String valuePart = strs.get(1);
this.value = isOperatorIn() ? valuePart : tryToNumber(valuePart);
return;
}
@ -537,6 +538,9 @@ public class Condition extends CloneSupport<Condition> {
*/
private static Object tryToNumber(String value){
value = StrUtil.trim(value);
if(false == NumberUtil.isNumber(value)){
return value;
}
try{
return NumberUtil.parseNumber(value);
} catch (Exception ignore){

View File

@ -60,4 +60,10 @@ public class ConditionTest {
// issue I38LTM
Assert.assertSame(Long.class, age.getValue().getClass());
}
@Test
public void parseInTest(){
final Condition age = Condition.parse("age", "in 1,2,3");
Assert.assertEquals("age IN (?,?,?)", age.toString());
}
}

View File

@ -110,6 +110,8 @@ public class Ftp extends AbstractFtp {
* @param user 用户名
* @param password 密码
* @param charset 编码
* @param serverLanguageCode 服务器语言
* @param systemKey 系统关键字
* @param mode 模式
*/
public Ftp(String host, int port, String user, String password, Charset charset, String serverLanguageCode, String systemKey, FtpMode mode) {
@ -626,8 +628,8 @@ public class Ftp extends AbstractFtp {
* @param fileName 文件名
* @param out 输出位置
* @param fileNameCharset 文件名编码
* @since 5.5.7
* @throws IORuntimeException IO异常
* @since 5.5.7
*/
public void download(String path, String fileName, OutputStream out, Charset fileNameCharset) throws IORuntimeException {
String pwd = null;