Java 8 Map.Entry comparisonator
2022-09-03 17:06:31
我一直在尝试使用lambda表达式在Java8中制作Map.Entry Comparator,并发现了一个非常奇怪的行为。
Map<Integer, String> map = new TreeMap<>();
map.put(1, "Hello");
map.put(3, "zzzz");
map.put(2, "aaaa");
map.put(5, "AAAAA");
map.put(4, "aaaa");
Comparator<Map.Entry<Integer, String>> com = Comparator.comparing(Map.Entry::getValue);
com = com.reversed();
Comparator<Map.Entry<Integer, String>> com2 = Comparator.comparing(Map.Entry::getValue).reversed();
com 工作正常,但 com2 包含一个误读“无法解析方法 getValue”。我真的不知道为什么?有什么建议吗?
P.S. 有没有办法避免键入 Map.Entry with Integer, String?更短的方式吗?