- 메소드 참조에는 기능을 잘 드러내는 이름을, 친절한 설명을 문서로 남길 수도 있다.
public class Freq {
public static void main(String[] args) {
Map<String, Integer> frequencyTable = new TreeMap<>();
for (String s : args) {
frequencyTable.merge(s, 1, (count, incr) -> count + incr); // 람다
}
System.out.println(frequencyTable);
}
}
public class Freq {
public static void main(String[] args) {
Map<String, Integer> frequencyTable = new TreeMap<>();
for (String s : args) {
frequencyTable.merge(s, 1, Integer::sum); // 메서드 참조
}
System.out.println(frequencyTable);
}
}
- 더 읽기 쉽고 유지보수도 쉬워질 수 있다는 뜻이다.
Integer::parseInt
str -> Integer.parseInt(str)
Instant.now()::isAfter
Instant then = Instant.now();
t -> then.isAfter(t)
String::toLowerCase
str -> str.toLowerCase()
TreeMap<K, V>::new
() -> new TreeMap<K, V>()
int[]::new
len -> new int[len]
Reference: