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(侵入と削除)を言いました。
あなた自身のメモとして、みんなを歓迎します!