Java 中的 lambda 表示式可以有多少個引數?
lambda 表示式簡單易懂,包含三個部分:**引數**(方法引數)、**箭頭運算子**(->)和**表示式**(方法體)。lambda 表示式可以分為三種類型:**無引數 lambda 表示式**、**單引數 lambda 表示式**和**多引數 lambda 表示式**。
無引數的 Lambda 表示式
如果需要建立無引數的 lambda 表示式,則以空括號開頭。
語法
() -> {
//Body of no parameter lambda
}示例(無引數 Lambda)
import java.util.function.*;
import java.util.Random;
public class LambdaExpression1 {
public static void main(String args[]) {
NumberUtil num = new NumberUtil();
int randVal = num.getRandomValue(
() -> { // no parameter lambda
Random random = new Random();
return random.nextInt(500);
});
System.out.println("The value returned from Lambda is: "+ randVal);
}
private static class NumberUtil {
public int getRandomValue(Supplier<Integer> supplier) {
return supplier.get();
}
}
}輸出
The value returned from Lambda is: 144
單引數的 Lambda 表示式
如果需要建立帶單個引數的 lambda 表示式,則以包含單個引數的括號開頭。
(p1) -> {
//Body of single parameter lambda
}示例(單引數 Lambda)
import java.util.function.*;
public class LambdaExpression2 {
public static void main(String args[]) {
Validator validator = new Validator();
String city = "Hyderabad";
boolean isValid = validator.isDataValid(city,
(String info) -> { // single parameter lambda
String regx = "^[a-zA-Z0-9]*$";
return info.matches(regx);
});
System.out.println(" The value returned from lambda is: "+ isValid);
}
private static class Validator {
public boolean isDataValid(String data, Predicate<String> predicate) {
return predicate.test(data);
}
}
}輸出
The value returned from lambda is: true
多引數的 Lambda 表示式
如果需要建立帶多個引數的 lambda 表示式,則以包含多個引數的括號開頭。
(p1,p2) -> {
//Body of multiple parameter lambda
}示例(多引數 Lambda)
import java.util.function.*;
public class LambdaExpression3 {
public static void main(String args[]) {
Message m = new Message();
m.printStringInteger("Java", 75,
(String str, Integer number) -> { // multiple parameters lambda
System.out.println("The values are: "+ str + " "+ number);
});
}
private static class Message {
public void printStringInteger(String str, Integer number, BiConsumer<String, Integer> biConsumber) {
biConsumber.accept(str, number);
}
}
}輸出
The values are: Java 75
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP