首页
App
&
Coffee
文档
项目
分享
反馈
俱乐部
登录
注册
建议增强object.fieldName为object[fieldName]
BTMTimor
2020-12-31 16:52
建议增强object获取field的方法,增强object.fieldName为object[fieldName],某些情况下更奈斯
项目:
JFinal
评论区
JFinal
2020-12-31 23:14
这个需求以前没人提过,可能并不强列,在语义上不太契合
回复
BTMTimor
2021-01-01 15:32
@JFinal
有些情况可能会用到,比如计算字段,object["col" + 1] = object.getCol1();, object["col" + 2] = object.getCol2();。
回复
BTMTimor
2021-01-01 15:33
这种写法js和php等都行,有些情况很好用
回复
JFinal
2021-01-01 15:58
@BTMTimor
如果对象本身就是 Model 或者 Record 类型的,可以这么来用:
object.get("col" + 1);
可以做到 object["col" + 1] 一样的功能
此外,还提供了 FieldGetter 抽象,可以任意扩展 field 表达式,十分方便
Engine.addFieldGetter(int, FieldGetter)
回复
BTMTimor
2021-01-05 15:22
@JFinal
需要修改public class Index extends Expr或者添加新的Expr
回复
BTMTimor
2021-01-05 16:14
@JFinal
index.java:45行开始的eval方法,自定义的FieldGetter虽然返回了值,但是因为target不是list/map/array,最终在85行报错,导致自定义的FieldGetter无法对其他类型的Object起作用,希望能在下一版添加哈
回复
发送
我要反馈
热门反馈
扫码入社