以下是我的代码段的两行:
List listDevs = Arrays.asList("alvin", "Alchemist", "brutus", "larsen", "jason", "Kevin");
listDevs.sort(Comparator.comparing(String::length)); //This works fine
listDevs.sort(String::compareToIgnoreCase); //This works fine
但是(当expermient)我尝试写
listDevs.sort(Comparator.comparing(String::compareToIgnoreCase));
编译器抛出错误
Cannot make a static reference to the non-static method
compareToIgnoreCase(String) from the type String
类似的情况发生在下面的代码中
listDevs.sort(Comparator.comparing(String::compareTo));
我理解错误,如果我删除Comparator.comparing(如上所示)它工作正常.
但我的观点是,这条线是如何工作的?
listDevs.sort(Comparator.comparing(String::length));
我相信我错过了一些东西.我看过this线程.这是同样的情况吗?