0

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

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

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

String email;

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

我在想的另一个选项是 using Spring validation,但在提交 a 之前似乎没有办法触发它Spring Form Bean。也许有另一种触发方式?

4

1 回答 1

0

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

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

这是你的意思吗?

于 2012-10-18T13:11:04.983 回答