我的表单包含 6 个字段:fName、lName、mName、age、sex、sal
我们不能期望用户会完成所有输入。有时他只完成3个输入,有时4个,有时只完成1个,有时全部,我们无法预测。
我有一个员工 Bean,它的所有 6 个属性都有值。
我想用用户提供的所有输入来搜索这个员工 bean。这意味着我需要动态识别使用哪个 getter 进行比较。如果用户只给出了 3 个输入,那么我只需要使用各自的 getter 进行比较。
最佳答案
您可以使用反射。例如,如果您的用户提供年龄和性别,您应该调用 getAge()
和 getSex()
并将它们与给定值进行比较。要编写 getter 名称,请使用如下代码:
String getterName = "get"+ fieldName.substring(0, 1).toUpperCase() + fieldName.substring(1);
现在您可以调用它:
字符串值 = String.valueOf(Person.getCalss().getMethod(getterName).invoke(person));
现在只需将其与给定值进行比较即可。
您还可以使用为您简化 Bean 访问的库。例如BeanUtils来自 Jakarta 项目。
关于java - 动态搜索形式给定数量的输入值与集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15525005/