java - 动态搜索形式给定数量的输入值与集合

标签 java

我的表单包含 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/

相关文章:

java - 仅当 allMatch 在 Java 中过滤和处理流时才收集流

java - Kafka 从相同的偏移量重启

java - 当 StartNode 和 EndNode 是同一类型的对象时,Neo4j OGM RelationshipEntity

java - 从 Java 中的另一个类访问 UUID

java - 如何知道该网站是否是通过移动设备访问的

java - 将 Java 6 代码反向移植到 Java 5 的简单方法?

java - Web 应用程序和请求身份验证

java - 如何使用 Scanner 处理无效输入(InputMismatchException)引起的无限循环

java - 在 JEE Restful Web 服务和 Android 之间使用相同的 API 解析数据的最佳方法是什么?

java - Dreamweaver 支持 Java 吗?