在PHP
中,当然,这是一种解释型语言,我可以在运行时取消引用字段名称,例如下面是'source'
和'value'
,并使用source和value指向的这两个字段的值。
{$key['source']}[LANGUAGE_NONE][0]['value'];
Java
中有类似的设施吗?我有一些bean的属性,我需要验证并执行各种检查。我想循环遍历SQL
字段名表并在字段上执行指示的验证,而不是对逻辑进行硬编码。例如。如果我在数据库中有值"email"
,我会选择下面的属性并根据数据库列中的规则对其进行验证:
String email;
我会有很多豆子和很多领域,这就是我考虑这种方法的原因。我对设计没有发言权:(
我想到的另一个选项是使用Spring validation
,但在提交Spring Form Bean
之前似乎没有办法触发它。也许还有另一种方法可以触发它?
答案 0 :(得分:0)
我认为您希望将属性名称存储在数据存储中,并在运行时访问该数据存储以查询属性。您描述的构造最接近于Java中的Map - 键/值对,并且没有什么可以阻止您访问以这种方式存储的数据,例如myMap.get("myproperty");
。问题是为所有对象建模,因为地图不是很好。
另一个选择是使用反射和约定。因此,名为“source”的数据库中的属性将由名为“getSource()”的方法访问。这类似于JavaBeans
这是你的意思吗?