0

我的表单包含 6 个字段:fName、lName、mName、age、sex、sal

我们不能指望用户会完成所有的输入。有时他只完成 3 个输入,有时 4 个,有时只完成 1 个,有时全部,我们无法预测。

我有一个具有所有 6 个属性值的员工 bean。

我想使用来自用户的所有给定输入来搜索这个员工 bean。这意味着我需要动态识别用于比较的 getter。如果用户只给出了 3 个输入,那么我只需要使用各自的 getter 进行比较。

4

2 回答 2

1

您可以使用反射。例如,如果您的用户提供了年龄和性别,您应该调用它们getAge()并将getSex()它们与给定值进行比较。要编写 getter 名称,请使用如下代码:

String getterName = "get" + fieldName.substring(0, 1).toUpperCase() + fieldName.substring(1);

现在你可以调用它了:

String value = String.valueOf(Person.getCalss().getMethod(getterName).invoke(person));

现在只需将其与给定值进行比较。

您还可以使用为您简化 bean 访问的库。例如来自 jakarta 项目的BeanUtils 。

于 2013-03-20T13:38:40.007 回答
0

您可以使用 Hamcrest Matchers 之类的东西。例如:

String MATCH_ANY = "matchany83102176193580";

...

if (mName.equals(search.mName) || mName.equals(MATCH_ANY))
于 2013-03-20T13:38:03.703 回答