我有一个下面是嵌套对象的类,
public class Order implements Serializable {
private String id;
private List<Order> orders = new ArrayList<>();
// getters and setters
}
当我有完整的订单列表和订单ID时,尝试查找匹配的订单。
private Order findMatchingOrder(String id, List <Order> orders, Order order) {
for (Order o: orders) {
if (o.getId().equals(id)) {
order = o;
break;
} else {
findMatchingOrder(id, o.getOrders(), o);
}
}
return order;
}
由于这是一个递归调用,即使我在if条件中使用了break,它仍会在执行break后执行else块,而不是从for循环中跳出并返回顺序。
有没有其他方法可以实现这个目标?最好使用Java 8。
null
,则通过返回已返回给您的内容来中断循环(您需要重构当前算法以实现此方法)。 - Turing85