我试图评估一个java路径对象表达式,以便调用getter或setter。
例如,以下表达式 object1.object2.attribute1 应该执行这样的代码obj.getObject2().getAttribute1();
为此,我有一个像这样的配置文件:
<grid_configuration>
<injection>
<cell>
<position_X>1</position_X>
<position_Y>2</position_Y>
<type>Double</type>
<expression>object1.attribute1</expression>
</cell>
<cell>
<position_X>1</position_X>
<position_Y>2</position_Y>
<type>Double</type>
<expression>object1.object2.attribute1</expression>
</cell>
</injection>
<grid_configuration>
这样的服务:
<T> void injectData(GridConfiguration conf, T obj, Grid out);
Grid对象有一个方法void setValue(int x, int y, String value);
我的实施
<T> void injectData(GridConfiguration conf, T obj, Grid out) {
for(Cell c : conf.getCells()) {
int x = c.getPositionX();
int y = c.getPositionY();
String value = evaluateExpression(obj, c.getExpression());
out.setValue(x, y, value);
}
}
问题是:
是否有java函数,库或其他可帮助我构建方法的内容<T> String evaluateExpression(T obj, String expression);
否则,我需要对这个对象进行反省......但我并不特别容易相处。
提前致谢