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