【发布时间】:2015-04-21 15:52:10
【问题描述】:
我正在研究一个程序的两个部分。一个创建小型 groovy 脚本,另一个在 Job 中执行它们。每个脚本都用于将信息从地图转换为域对象。然后该作业将保存域对象以供将来使用。
这是一个小例子。
域
class Report {
Date date
Country country
}
地图
Map<String, String> map = new HashMap<String, String>();
map.put("date", "2015-04-21 11:31:11");
map.put("country", "United States");
日期脚本
String script = "x.date = Date.parse('y-M-d h:m:s', y['date'])"
脚本当前使用 Eval 执行。
Eval(report, map, script)
还有其他更复杂的脚本需要查找信息并根据值做出决策。
日期脚本运行良好,但执行国家/地区脚本时出现错误。
国家脚本
String script = "import app.Country\nx.country = Country.findByName(y['country'])"
错误
Script1.groovy: 1: unable to resolve class app.Country
在对 Eval 的调用中似乎没有加载 Country 类。如何在 Eval 中进行导入?我应该使用 Eval 还是 GroovyShell?
【问题讨论】: