我一直在试图使用Lambda表达式来制作Java8中的Map.Entry比较器,但发现了一个非常奇怪的行为。
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"。我真的不知道为什么?有任何建议吗?
附言:有没有避免使用Map.Entry和Integer,String输入的方法? 有更短的方式吗?