今日主题:lambda表达式(一)
简介
lambda表达式是什么呢?是JDK8的一个新特性,他的优势有很多,可以简化很多操作,我们现在来讲讲吧!
环境
- JDK8
什么是lambda表达式
Lambda是JAVA8添加的一个新的特性。说白了,Lambda就是一个匿名函数。
为什么要用它
使用Lambda表达式可以对一个接口进行非常简洁的实现。
lambda对接口的要求
虽然可以使用Lambda表达式对某些接口进行简单的实现,但是并不是所有的接口都可以用Lambda表达式来实现。要求接口中定义的必须要实现的抽象方法只能是一个。
如何来保证抽象方法只有一个呢?
加一个注解@FunctionalInterface
列如:
//这个注解是用来限制下面这个接口只能有一个抽象方法
@FunctionalInterface
interface Comparator{
int compare(int a,int b);
}
lambda基础语法
//无返回值,无参数
@FunctionalInterface
public interface LambdaNoneReturnNoneParameter {
void test();
}
//无返回值,单个参数
@FunctionalInterface
public interface LambdaNoneReturnSingleParameter {
void test(int n);
}
//无返回值,多个参数
@FunctionalInterface
public interface LambdaNoneReturnMutipleParameter {
void test(int m,int n);
}
//单个返回值,无参数
@FunctionalInterface
public interface LambdaSingleReturnNoneParameter {
int test();
}
//单个返回值,单个参数
@FunctionalInterface
public interface LambdaSingleReturnSingleParameter {
int test(int n);
}
//单个返回值,多个参数
@FunctionalInterface
public interface LambdaSingleReturnMultipleParameter {
int test(int a,int b);
}
主函数:
可以通过以下的操作来实现函数的简化操作
public class Syntax1 {
public static void main(String[] args) {
//1.lambda表达式的基础语法
//lambda是一个匿名函数
//参数列表 方法体
//():用来描述参数列表
//{}:用来描述方法体
//->lambda运算符,读作goes to
//无参无返回
LambdaNoneReturnNoneParameter lambda1=()->{
System.out.println("hello world");
};
lambda1.test();//hello world
//无返回值,单个参数
LambdaNoneReturnSingleParameter lambda2=(int a)->{
System.out.println(a);
};
lambda2.test(10);//10
//无返回值,多个参数
LambdaNoneReturnMutipleParameter lambda3=(int a,int b)->{
System.out.println(a+" "+b);
};
lambda3.test(2, 3);//2 3
//有返回值,无参数
LambdaSingleReturnNoneParameter lambda4=()->{
return 1;
};
System.out.println(lambda4.test());//1
//有返回值,一个参数
LambdaSingleReturnSingleParameter lambda5=(int a)->{
return a;
};
System.out.println(lambda5.test(5));//5
//有返回值,多个参数
LambdaSingleReturnMultipleParameter lambda6=(int a,int b)->{
return a+b;
};
System.out.println(lambda6.test(2, 3));//5
}
}
Lambda第一期结束了,期待与你的第二期!