在Java中取消引用字段名称以验证它

时间:2012-10-18 12:02:17

标签: java spring

PHP中,当然,这是一种解释型语言,我可以在运行时取消引用字段名称,例如下面是'source''value',并使用source和value指向的这两个字段的值。

{$key['source']}[LANGUAGE_NONE][0]['value'];

Java中有类似的设施吗?我有一些bean的属性,我需要验证并执行各种检查。我想循环遍历SQL字段名表并在字段上执行指示的验证,而不是对逻辑进行硬编码。例如。如果我在数据库中有值"email",我会选择下面的属性并根据数据库列中的规则对其进行验证:

String email;

我会有很多豆子和很多领域,这就是我考虑这种方法的原因。我对设计没有发言权:(

我想到的另一个选项是使用Spring validation,但在提交Spring Form Bean之前似乎没有办法触发它。也许还有另一种方法可以触发它?

1 个答案:

答案 0 :(得分:0)

我认为您希望将属性名称存储在数据存储中,并在运行时访问该数据存储以查询属性。您描述的构造最接近于Java中的Map - 键/值对,并且没有什么可以阻止您访问以这种方式存储的数据,例如myMap.get("myproperty");。问题是为所有对象建模,因为地图不是很好。

另一个选择是使用反射和约定。因此,名为“source”的数据库中的属性将由名为“getSource()”的方法访问。这类似于JavaBeans

这是你的意思吗?