匿名クラスは、ラムダ式を利用することでシンプルに実装できる。
List<String> members = Arrays.asList("tomie", "fukasawa", "higashi", "ato");
members.replaceAll(new UnaryOperator<String>() {
public String apply(String str) {
return str.toUpperCase();
}
});
members.replaceAll( (String str) -> {
return str.toUpperCase();
});
replaceAll()
メソッドの引数内で、
UnaryOperator
インターフェースの匿名クラス定義apply()
の実装を同時に行っている。
関数型インターフェースは抽象メソッドが一つしかないため、実装するメソッド名apply
はわざわざ書かなくてもラムダ式が補完してくれる。