2、按指定条件查找符合条件的对象(进阶级)
条件可以是字符形式的,如“age>19”,“name=’张三’等。如符合条件的对象不止一个,应返回一个对象数组(ObjectArrayDemo类型的对象)
有什么思路?
按指定条件查找符合条件的对象(进阶级) 条件可以是字符形式的,如“age>19”,“name=’张三’等。如符合条件的对象不止一个,应返回一个对象数组(ObjectArrayDemo类型的对象)
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注 该回复引自强大而免费的微信小程序:皆我百晓生。
要按指定条件查找符合条件的对象,并返回一个对象数组,可以使用 Java 中的反射机制来实现。以下是一个示例代码:
import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; public class ObjectArrayDemo { private String name; private int age; // 其他属性... public ObjectArrayDemo() { } public ObjectArrayDemo(String name, int age) { this.name = name; this.age = age; } // 其他方法... public static ObjectArrayDemo[] findObjectsByCondition(ObjectArrayDemo[] objects, String condition) { List<ObjectArrayDemo> resultList = new ArrayList<>(); try { String[] conditionParts = condition.split("="); String fieldName = conditionParts[0].trim(); Object expectedValue = conditionParts[1].trim().replace("'", ""); for (ObjectArrayDemo object : objects) { Class<?> clazz = object.getClass(); Field field = clazz.getDeclaredField(fieldName); field.setAccessible(true); Object actualValue = field.get(object); if (expectedValue.equals(actualValue)) { resultList.add(object); } } } catch (Exception e) { e.printStackTrace(); } return resultList.toArray(new ObjectArrayDemo[0]); } public static void main(String[] args) { ObjectArrayDemo[] objects = new ObjectArrayDemo[3]; objects[0] = new ObjectArrayDemo("张三", 20); objects[1] = new ObjectArrayDemo("李四", 25); objects[2] = new ObjectArrayDemo("王五", 20); String condition = "age=20"; ObjectArrayDemo[] result = ObjectArrayDemo.findObjectsByCondition(objects, condition); for (ObjectArrayDemo object : result) { System.out.println("Name: " + object.getName() + ", Age: " + object.getAge()); } } }
在上述代码中,我们定义了一个
ObjectArrayDemo
类,其中包含了示例中提到的name
和age
两个属性。在findObjectsByCondition
方法中,我们使用反射获取对象的属性值,并根据给定的条件进行判断。最后,将符合条件的对象添加到一个List
中,然后将该List
转换成数组返回。在
main
方法中,我们创建了一个包含三个ObjectArrayDemo
对象的数组,并调用findObjectsByCondition
方法来查找年龄等于 20 的对象。最后,我们遍历返回的结果并打印对象的姓名和年龄。你可以根据实际需求修改类的属性和方法,以适应其他条件和类型的查询。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 求京东批量付款能替代天诚
- ¥15 slaris 系统断电后,重新开机后一直自动重启
- ¥15 51寻迹小车定点寻迹
- ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
- ¥15 关于vue2中methods使用call修改this指向的问题
- ¥15 idea自动补全键位冲突
- ¥15 请教一下写代码,代码好难
- ¥15 iis10中如何阻止别人网站重定向到我的网站
- ¥15 滑块验证码移动速度不一致问题
- ¥15 Utunbu中vscode下cern root工作台中写的程序root的头文件无法包含