Lambdaの基本的な使用法(コードからの定義を理解する)

1.ラムダ式

ラムダ式は匿名関数であり(これはJavaには完全には正しくありませんが、今のところそう思います)、JDK1.8の新機能です。簡単に言えば、宣言のない、つまりアクセスのないメソッドです。修飾子、戻り値の宣言と名前。

省略形と考えて、特定の方法を使用する必要がある場所に書き込むことができます。メソッドが1回だけ使用され、定義が短い場合、この簡略化された代替手段を使用すると特に効果的であるため、クラスで宣言やメソッドを面倒に記述する必要がありません。

1.1基本的なパーティ実装クラスメソッド

最初に基本的な実装クラスを見て、一般にインターフェイスと、インターフェイスを実装する3つのメソッド(一般的な実装クラス、静的内部クラス、ローカル内部クラス)を定義します。

package SunLambda;
//对接口实现类进行调用。
public class Lambda_01 {
    
    
    //静态内部类
     static class ILike2 implements LambdaSun{
    
    
        @Override
        public void Lambda() {
    
    
            System.out.println("学习Lambda让我快乐!2");
        }
    }
    public static void main(String[] args) {
    
    
        ILike iLike = new ILike();
        iLike.Lambda();
        ILike2 iLike2 = new ILike2();
        iLike2.Lambda();

        //局部内部类
        class ILike3 implements LambdaSun{
    
    
            @Override
            public void Lambda() {
    
    
                System.out.println("学习Lambda让我快乐!3");
            }
        }
        ILike3 iLike3 = new ILike3();
        iLike3.Lambda();
    }
}

//定义接口
interface LambdaSun{
    
    
    void Lambda();
}

//定义接口实现类
class ILike implements LambdaSun{
    
    
    @Override
    public void Lambda() {
    
    
        System.out.println("学习Lambda让我快乐!");
    }
}

ここに写真の説明を挿入

なぜラムダを使用するのですか?

ラムダ式を使用して、インターフェイスを簡潔に実装します。

インターフェイスのラムダ要件

実装する必要があるインターフェイスで定義できる抽象メソッドは1つだけです(実装する必要があり、デフォルトでは変更されません)。

1.2ラムダ簡略化パラメータなし構築方法

package SunLambda;

public class Lambda_02 {
    
    


    public static void main(String[] args) {
    
    
        //匿名内部类,没有类的名称,必须借助接口或者是父亲
        LambdaSun1 lambda = new LambdaSun1() {
    
    
            @Override
            public void Lambda() {
    
    
                System.out.println("学习Lambda让我快乐!5");
            }
        };
        lambda.Lambda();
        //用Lambda方法进行简化

        LambdaSun1 lambd = () ->{
    
    
                System.out.println("学习Lambda让我快乐!6");
        };
        lambd.Lambda();
        LambdaSun1 lambd1;

        //用Lambda方法进行简化简化2
        lambd1= ()-> System.out.println("学习Lambda让我快乐!7");
        lambd1.Lambda();

    }

}
//定义接口
interface LambdaSun1{
    
    
    void Lambda();
}


ここに写真の説明を挿入

Lambdaは、匿名の内部クラスを使用してインターフェイスを段階的に実装します。

注意:

1.ラムダ式は、コードが1行しかない場合にのみ、1行に簡略化できます。複数行がある場合は、コードブロック(つまり{})を使用する必要があります。

2.前提は、インターフェースが機能的なインターフェースであるということです。

3.インターフェイスの複数のパラメータタイプを削除できます。すべてのパラメータタイプを削除する場合は、括弧を追加する必要があります。

1.3パラメータを使用したラムダ簡略化メソッド

package SunLambda;

public class Lambda_03 {
    
    



    public static void main(String[] args) {
    
    
    //匿名内部类
        LambdaSun2 lambdasun = new LambdaSun2(){
    
    
            @Override
            public void lambda(int a,int b,int c) {
    
    
                System.out.println(a+b+c);
            }
        };
        lambdasun.lambda(1,1,1);
        LambdaSun2 lambda;
        //lambda简化1
        lambda =(int a,int b,int c)->{
    
    
            System.out.println(a+b+c);
        };
        lambdasun.lambda(2,2,2);
        //lambda简化2
        lambda =( a,b,c)->{
    
    
            System.out.println(a+b+c);
        };
        lambdasun.lambda(3,3,3);
        //lambda简化3
        lambda=( a,b,c)-> System.out.println(a+b+c);
        lambdasun.lambda(4,4,4);
    }
}
interface LambdaSun2{
    
    
    void lambda(int a,int b,int c);
}

ここに写真の説明を挿入

注:インターフェースの複数のパラメータータイプを削除できます。それらを削除する場合は削除できますが、括弧を追加する必要があります。

ビリビリ狂った神の自己学習はJAVA(侵入と削除)を言いました。

あなた自身のメモとして、みんなを歓迎します!

おすすめ

転載: blog.csdn.net/SUN__CGJ/article/details/109406652