mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-04-19 03:01:48 +08:00
add methods
This commit is contained in:
parent
0543cec440
commit
40f97b3864
@ -17,7 +17,8 @@
|
|||||||
* 【core 】 支持BeanUtil.toBean(object, Map.class)转换(issue#I1I4HC@Gitee)
|
* 【core 】 支持BeanUtil.toBean(object, Map.class)转换(issue#I1I4HC@Gitee)
|
||||||
* 【core 】 MapUtil和CollUtil增加clear方法(issue#I1I4HC@Gitee)
|
* 【core 】 MapUtil和CollUtil增加clear方法(issue#I1I4HC@Gitee)
|
||||||
* 【core 】 增加FontUtil,可定义pressText是否从中间(issue#I1HSWU@Gitee)
|
* 【core 】 增加FontUtil,可定义pressText是否从中间(issue#I1HSWU@Gitee)
|
||||||
* 【core 】 SoapClient支持自定义请求头(issue#I1I0AO@Gitee)
|
* 【http 】 SoapClient支持自定义请求头(issue#I1I0AO@Gitee)
|
||||||
|
* 【script 】 ScriptUtil增加evalInvocable和invoke方法(issue#I1HHCP@Gitee)
|
||||||
|
|
||||||
### Bug修复
|
### Bug修复
|
||||||
* 【core 】 修复SimpleCache死锁问题(issue#I1HOKB@Gitee)
|
* 【core 】 修复SimpleCache死锁问题(issue#I1HOKB@Gitee)
|
||||||
|
@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil;
|
|||||||
import javax.script.Bindings;
|
import javax.script.Bindings;
|
||||||
import javax.script.Compilable;
|
import javax.script.Compilable;
|
||||||
import javax.script.CompiledScript;
|
import javax.script.CompiledScript;
|
||||||
|
import javax.script.Invocable;
|
||||||
import javax.script.ScriptContext;
|
import javax.script.ScriptContext;
|
||||||
import javax.script.ScriptEngine;
|
import javax.script.ScriptEngine;
|
||||||
import javax.script.ScriptEngineManager;
|
import javax.script.ScriptEngineManager;
|
||||||
@ -149,6 +150,18 @@ public class ScriptUtil {
|
|||||||
return createScript("groovy");
|
return createScript("groovy");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 执行Javascript脚本,返回Invocable
|
||||||
|
*
|
||||||
|
* @param script 脚本内容
|
||||||
|
* @return 执行结果
|
||||||
|
* @throws ScriptRuntimeException 脚本异常
|
||||||
|
* @since 5.3.6
|
||||||
|
*/
|
||||||
|
public static Invocable evalInvocable(String script) throws ScriptRuntimeException {
|
||||||
|
return (Invocable) eval(script);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 执行Javascript脚本
|
* 执行Javascript脚本
|
||||||
*
|
*
|
||||||
@ -199,6 +212,24 @@ public class ScriptUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 执行JS脚本中的指定方法
|
||||||
|
*
|
||||||
|
* @param script js脚本
|
||||||
|
* @param func 方法名
|
||||||
|
* @param args 方法参数
|
||||||
|
* @return 结果
|
||||||
|
* @since 5.3.6
|
||||||
|
*/
|
||||||
|
public static Object invoke(String script, String func, Object... args) {
|
||||||
|
final Invocable eval = evalInvocable(script);
|
||||||
|
try {
|
||||||
|
return eval.invokeFunction(func, args);
|
||||||
|
} catch (ScriptException | NoSuchMethodException e) {
|
||||||
|
throw new ScriptRuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 编译Javascript脚本
|
* 编译Javascript脚本
|
||||||
*
|
*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user