如何才能寫出Lambda表達式語句如何將Lambda表達式寫入方法引用?
Collections.sort(list,(a1,a2) -> (a1.getName().compareTo(a2.getName())));
到方法的引用?
如何才能寫出Lambda表達式語句如何將Lambda表達式寫入方法引用?
Collections.sort(list,(a1,a2) -> (a1.getName().compareTo(a2.getName())));
到方法的引用?
Collections.sort(list, Comparator.comparing(Item::getName));
或者更好的是,
list.sort(Comparator.comparing(Item::getName));
記住,lambda表達式是基本上由一個功能接口定義的單個方法的實現。
任何具有匹配簽名(方法名稱除外)的方法都可以通過引用代替lambda表達式來使用。
在你的情況,這是Comparator<? super T>
接口和它的int compare(T o1, T o2)
方法,使返回int
並採取集合元素會做的類型的兩個參數的任何方法。
所以,如果你的列表是List<Person>
,任何這樣的方法將工作,無論方法名:
public static int xxx(Person p1, Person p2) { ... }
的方法可以有任何的可見性(公共,私有,...),並沒有按」必須是靜態的。