我遇到了一个奇怪的案子.在给定的数据库中,我得到了一个包含VARCHAR字段的记录,所以在我的实体模型中我添加了这个字段,加上getter和setter.现在是乐趣开始的地方:
下面的字符串实际上是方法的主体.它看起来像这样:
if (score <= 0.7) {return 0;} else if (score <=0.8) {return 1;} else if (score <=0.9) {return 2;} else {return 3}
Run Code Online (Sandbox Code Playgroud)
现在 - 我需要将这个字符串变成一个方法,说实话我不知道如何实现这一点.这个实际的方法需要从我得到一个得分为double,并根据给定的分数返回一个整数值.
任何人?
我知道最简单的方法是不使用这样的解决方案,但这不是我的电话,此外,数据库中有大量这样的记录,每条记录都不同.我们无法解决这个问题.我必须处理这个问题 - 所以请求解决方案的想法,我保证我会做所有的讨厌,并说这是愚蠢的:)
相信我,我,我做,我会抱怨相当一些时间.
Joo*_*gen 16
int eval(String code) {
code = "function f () {" + code + "} f()"; // Or otherwise
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("JavaScript");
engine.put("score", 1.4);
Number num = (Number) engine.eval(code);
return num.intValue();
}
Run Code Online (Sandbox Code Playgroud)
在这里我假设,JavaScript语法是可能的; 不得不填写score,你可能会在某处拦截所有未知的自由变量.
| 归档时间: |
|
| 查看次数: |
353 次 |
| 最近记录: |