在了解lambda表达式之前,我们先理解几个概念,匿名内部类 和匿名函数。在new一个接口或者抽象方法的时候,需要实现里面的抽象函数,这些函数就叫做匿名函数。
接口名 接口对象 = () -> 具体接口里面的方法实现;
参数 | 描述 |
---|---|
接口名 | 我们定义个接口名称,这个接口比较特殊,只有一个方法 |
接口对象 | 接口定义的一个对象 |
() | () 参数列表,如果有参数就填写,没有就为空 |
-> | Lambada操作符或者箭头操作符 |
具体接口里面的方法实现; | 指定了表达式要执行的功能 |
Runnable r1 = () -> System.out.println("hello,world");
定义一个接口,里面有一个方法,有一个参数没有返回值
package lambda;
public interface FunctionInterface {
void test(int param);
}
定义一个测试类
package lambda;
public class TestMain {
public static void main(String[] args) {
func((x) -> System.out.println("Hello World" + x));
}
private static void func(FunctionInterface functionInterface) {
int x = 1;
functionInterface.test(x);
}
}
定义一个接口,里面有一个方法,有一个参数和有返回值
/**
* 定义一个接口
*/
package lambda;
public interface FunctionInterface {
String test(int param);
}
定义一个测试类
package lambda;
public class TestMain {
public static void main(String[] args) {
String s = func((x) -> {
return "ssss";
});
System.out.println(s);
}
private static String func(FunctionInterface functionInterface) {
int x = 1;
return functionInterface.test(x);
}
}
类别 | 使用形式 |
---|---|
静态方法引用 | 类名 :: 静态方法名 |
实例方法引用 | 对象名(引用名) :: 实例方法名 |
类方法引用 | 类名 :: 实例方法名 |
构造方法引用 | 类名 :: new |
Lambda 表达式和我们平时的语法不一样,要掌握 lambda 表达式,我们先要对内部类进行了解,然后再看这些内容的话,就会简单一点。