我找到了一种方法,因为java 8支持更高阶函数:Lambda expressions and higher-order functions
就像在javascript中一样:
funcArr = ["abc","def"];
funcArr.forEach(function(x){
eval(x+"=function(){console.log('new func');}");
}
现在我的查询是如果我使用上面答案中提到的这种方法,我可以为创建的函数指定访问修饰符
答案 0 :(得分:0)
也许这会有用。
Arrays.asList("abc", "def").forEach(func -> {
try {
new ScriptEngineManager().getEngineByName("js").eval(func + "=function(){console.log('new func');}");
} catch (ScriptException e) {
//catch
}
});