【JAVA】Lambdaインタフェース&関数レベルインタフェース
9696 ワード
Lambdaインタフェースは関数レベルインタフェースにのみ使用され、匿名クラスでよく使用されますが、関数レベルインタフェース--インタフェースには関数のインタフェースが1つしかありません.インタフェースを識別します.インタフェースには何の関数もないインタフェースです.
以上は関連概念の簡単な説明にすぎず、具体的な解釈は具体的なコードによって説明しなければならない.
以上は関連概念の簡単な説明にすぎず、具体的な解釈は具体的なコードによって説明しなければならない.
//
interface T1 {
void t();
}
//
interface T2 {
// a
int t(int a);
}
//
interface T3 {
// a b
int t(int a,int b);
}
/* Lambda */
public class Lambda {
//Lambda , ?
// : 。
// : 。
public static void main(String[] args) {
// new ,
// 。
// ,
// Alt+Enter 。
// , T 。
// , new T 。
// ,
// List, , 。
// T a=new T() {
// @Override
// public void t() {
// System.out.println("Hello");
// }
// };
// , 。
// , , 。
// , ,
// 。
// " " ,
// 。
// ,
// , 。
// T1
T1 a = () -> System.out.println("Hello");
// , 。
// t() 。
// , Lambda , 。
// ,
a.t();
// , , 。
// T1
T1 b = () -> {
System.out.println("Hello");
System.out.println("Hello");
};
// , ,
// , 。
// , 。
// , 。
// ,
// 。
// T2
T2 c = aa -> aa * 2;
System.out.println(c.t(20));
// ,
// , ,
// 。
// , 。
// T2
T2 d = cc -> { cc *= 2;cc += 2;return cc; };
System.out.println(d.t(30));
// ,
// T3
T3 e = (ab, ba) -> ab + ba;
System.out.println(e.t(20, 30));
}
}