【发布时间】:2021-04-03 07:55:51
【问题描述】:
我有一个包含一些字符串的列表,我想过滤这些列表,但是方法参考 ::startsWith 没有像我预期的那样工作。
private static final String KEY = "key=";
List<String> keyList = List.of("key=123", "value12", "value=34", "key=5678");
List<String> filtered = keyList.stream().filter(KEY::startsWith).collect(Collectors.toList());
List<String> filtered1 = keyList.stream().filter(e -> e.startsWith(KEY)).collect(Collectors.toList());
List<String> filtered2 = keyList.stream().filter("key="::startsWith).collect(Collectors.toList());
只有 filters1 具有预期的两个条目,其他列表为空。为什么 KEY::startsWith 没有按预期工作?
【问题讨论】:
标签: java java-stream method-reference