如何使用 java 流过滤器和谓词美化以下 java 查询?

How can I beautify the below java query using java stream filter and predicate?

如何使用 java 流过滤器和谓词美化以下 java 查询?

我有这段代码,它试图根据需要在 UI 级别处理的某些条件抛出一些异常。如何使用 java 流过滤器和谓词将以下代码缩短为更精确。

public Sort resolveArgument() {

    Sort sort = sortHandlerMethodArgumentResolver.resolveArgument();

    List<Sort.Order> orders = sort.stream().collect(Collectors.toList());
    if (orders.isEmpty()) {
        sort = Sort.by(Sort.Direction.DESC, default_sort_param);
    } else {
        if (orders.size() > sort_max_count) {
            throw new InvalidSortException("Please provide only 3 valid sort parameters.");
        }
    }

    orders.forEach(order -> {
        if (!allowed_sort_params.contains(order.getProperty())) {
            throw new InvalidSortException(order.getProperty() + " is not a valid sort parameter");
        }
    });

    return sort;
}

forEach调用可以替换为:

orders.stream().map(Sort.Order::getProperty).filter(x -> !allowed_sort_params.contains(x))
    .findFirst().ifPresent(x -> {
        throw new InvalidSortException(x + " is not a valid sort parameter");
    });

然而,IMO 这并没有太大的改进。