我的表单包含6个字段:fName,lName,mName,age,sex,sal
我们不能指望用户将完成所有输入。有时他只完成3个输入,有时只有4个,有时只有1个,有时甚至全部,我们无法预测它。
我有一个员工bean,它包含所有6个带值的属性。
我想用来自用户的所有给定输入搜索此employee bean。这意味着我需要动态识别用于比较的吸气剂。如果用户只提供了3个输入,那么我只需要使用相应的getter进行比较。
答案 0 :(得分: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 project的BeanUtils。
答案 1 :(得分:0)
你可以使用像Hamcrest Matchers这样的东西。例如:
String MATCH_ANY = "matchany83102176193580";
...
if (mName.equals(search.mName) || mName.equals(MATCH_ANY))