ラムダ式について質問です。
下記の【ソースコード1】について、4~7行目でラムダ式を使用して
関数型インタフェースのapplyメソッドを実装していますが、ラムダ式で
メソッド名を記述しなくてよいのは、関数型インタフェースは抽象メソッドを
1つ持っているインタフェースであり、ラムダ式によって実装しているメソッドは、
関数型インタフェースが唯一持っている抽象メソッドに対しての処理であると
認識されるためだという認識です。
この認識ですと、下記の【ソースコード2】の4~5行目のように抽象メソッド以外の
デフォルトメソッドなどはラムダ式で記述できないことになってしまうのですが、この認識が
間違っているのでしょうか。
ラムダ式についての正しい回答を宜しくお願い致します。
【ソースコード1】
0. import java.util.function.Function;
0. public class Sample{
0. public static void main(String[] args){
0. Function<String, String> obj = (String str) -> {
0. return "Hello" + str;
0. };
0. String str = obj.apply("Test");
0. }
0. }
【ソースコード2】
0. import java.util.*;
0. public class Sample2{
0. public static void main(String[] args){
0. List<String> list = Arrays.asList("red","blue","green");
0. color.replaceAll((String str) -> {return s.toUpperCase()});
0. }
0. }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/14 12:39