Java1.8特性:lambda表达式快速讲解

    函数式接概念
一个接口只包含一个抽象类,那么他是函数式接口 一个接口只包含一个抽象类,那么他是函数式接口
    函数式接口可以使用lambda表达式,例如:
public class TestLambda {
public static void main(String[] args) {
Like like = () -> {
System.out.println("lambda");
};
like.lamda();
}
}

interface Like {
void lamda();
}

结果为:lambda
public class TestLambda { public static void main(String[] args) { Like like = () -> { System.out.println("lambda"); }; like.lamda(); } } interface Like { void lamda(); } 结果为:lambda
    lambda表达式可以有参数列表
public class TestLambda {
public static void main(String[] args) {
Like like = (int a) -> {
System.out.println("lambda"+a);
};
like.lamda(6);
}
}

interface Like {
void lamda(int a);
}

结果为:lambda6
public class TestLambda { public static void main(String[] args) { Like like = (int a) -> { System.out.println("lambda"+a); }; like.lamda(6); } } interface Like { void lamda(int a); } 结果为:lambda6
lambda表达式有多种简化的方法,下面进行一一举例。 lambda表达式有多种简化的方法,下面进行一一举例。
    简化1:lambda表达式可以简化掉参数类型
public class TestLambda {
public static void main(String[] args) {
Like like = (a) -> {
System.out.println("lambda"+a);
};
like.lamda(6);
}
}

interface Like {
void lamda(int a);
}

结果为:lambda6
public class TestLambda { public static void main(String[] args) { Like like = (a) -> { System.out.println("lambda"+a); }; like.lamda(6); } } interface Like { void lamda(int a); } 结果为:lambda6
需要注意的是,当多个参数时,想要简化掉参数类型,则参数列表内所有参数的参数类型都需简化掉,且下面介绍的简化2不能使用,必须加上小括号。 需要注意的是,当多个参数时,想要简化掉参数类型,则参数列表内所有参数的参数类型都需简化掉,且下面介绍的简化2不能使用,必须加上小括号。
    简化2:lambda表达式可以简化掉括号
public class TestLambda {
public static void main(String[] args) {
Like like = a -> {
System.out.println("lambda"+a);
};
like.lambda(6);
}
}

interface Like {
void lambda(int a);
}
public class TestLambda { public static void main(String[] args) { Like like = a -> { System.out.println("lambda"+a); }; like.lambda(6); } } interface Like { void lambda(int a); }
    简化3:lambda表达式可以简化掉大括号
public class TestLambda {
public static void main(String[] args) {
Like like = a -> System.out.println("lambda"+a);
;
like.lambda(6);
}
}

interface Like {
void lambda(int a);
}
public class TestLambda { public static void main(String[] args) { Like like = a -> System.out.println("lambda"+a); ; like.lambda(6); } } interface Like { void lambda(int a); }
但这种情况仅仅适用于大括号内有一种语句的时候。 但这种情况仅仅适用于大括号内有一种语句的时候。
经验分享 程序员 微信小程序 职场和发展