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 的对象。最后,我们遍历返回的结果并打印对象的姓名和年龄。你可以根据实际需求修改类的属性和方法,以适应其他条件和类型的查询。
解决 无用评论 打赏 举报