java8: lambda表達式的參數
lambda表達式由三個部分組成:
- 一個括號,包括用逗號分隔的參數列表,如果只有一個參數,你可以省略括號。另外你可以省略參數的類型
- 一個箭頭符號: ->
- 方法體:可以是表達式和代碼塊(即函數式接口里面方法的實現),如果是代碼塊,則必須用{}來包裹起來。注意若函數式接口里面方法返回值是void,則無需{} </ol>
下面的代碼樣例說明在使用lambda表達式時如何傳遞一個或多個參數。
public class Main {
public static void main(String[] args) {
startTest(new Lambda() {
@Override
public void doSomething() {
System.out.println("通過匿名類方式實現");
}
});
startTest(new ParamLambda() {
@Override
public void doSomething(String param1) {
System.out.println("通過匿名類方式實現,參數的值是:" + param1);
}
});
startTest(() -> {
System.out.println("使用lambda表達式:無參數");
});
startTest((param1) -> {
System.out.println("使用lambda表達式:一個參數,其值是:" + param1);
});
startTest((param1, param2) -> {
System.out.println("使用lambda表達式:一個參數,其值是:" + param1 + "," + param2);
});
}
public static void startTest(Lambda obj) {
obj.doSomething();
}
public static void startTest(ParamLambda obj) {
obj.doSomething("to do something");
}
public static void startTest(MultiParamLambda obj) {
obj.doSomething("hi", "you must do something");
}
}
interface Lambda {
void doSomething();
}
interface ParamLambda {
void doSomething(String param1);
}
interface MultiParamLambda {
void doSomething(String param1, String param2);
} 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!