文章导读
大家好,我是顺亿。今天我们来聊聊Lambda表达式,这个Java 8引入的新特性。Lambda表达式可以让我们的代码更加简洁、优雅,尤其在处理集合操作时,它能大大简化代码结构。本文将全面解析Lambda表达式,包括其基本用法、方法引用和构造器引用等,让你轻松掌握这个强大的工具。
入门
Lambda表达式可以看作是匿名内部类的简化版。它主要用于实现只有一个抽象方法的接口,也就是函数式接口。Java 8提供了@FunctionalInterface注解来标识函数式接口。
类名引用静态方法
public class Test3 {
private static void printAbs(int num, Calcable calcable) {
System.out.println(calcable.calc(num));
}
public static void main(String[] args) {
//lambda表达式
printAbs(-10, num -> Math.abs(num));
//方法引用
printAbs(-10, Math::abs);
}
}
@FunctionalInterface
interface Calcable {
int calc ( int num);
}
class Math {
public static int abs(int num) {
if (num < 0) {
return -num;
} else {
return num;
}
}
}
对象名引用方法
public class Test3 {
private static void printAbs(int num, Calcable calcable) {
System.out.println(calcable.calc(num));
}
public static void main(String[] args) {
Math math = new Math();
//lambda表达式
printAbs(-10, num -> math.abs(num));
//方法引用
printAbs(-10, math::abs);
}
}
@FunctionalInterface
interface Calcable {
int calc(int num);
}
class Math {
public int abs(int num) {
if (num < 0) {
return -num;
} else {
return num;
}
}
}
构造器引用
public class Test3 {
private static void printName(String name, PersonBuild build){
System.out.println(build.buildPerson(name).getName());
}
public static void main(String[] args) {
//lambda表达式
printName(
