java8新特性-lambda(基本语法)

1.lambda基本语法

(1)声明部分:就是和lambda表达式绑定的接口类型

(2)参数部分:包含一对圆括号中,和绑定的接口中的抽象方法中的参数个数和顺序相同

(3)操作符部分:->

(4)执行代码块:包含一对大括号中,出现在操作符的右侧

[接口声明] = (参数) -> {执行代码块}

例:

没有参数,没有返回值的lambda表达式绑定的接口

interface ILambda1 {
void test();
}
//只有一行代码,则可以直接省略花括号
ILambda1 lambda1 = () -> {
  System.out.println("hello world");
};
lambda1.test();    

带参数,没有返回值的lambda表达式

interface ILambda2 {
  void test(String a, int b);
}

//或者直接参数对象类型,jvm会自动补全参数类型 ILambda2 lambda2 = (String a, int b) -> {   System.out.println(a + b); }; lambda2.test("你好", 11);

带参数,带返回值类型的lambda表达式

interface ILambda3 {
    String test(String k, String v);
}

ILambda3 iLambda3 = (String k, String v) -> {
    return k + v;
};
System.out.println(iLambda3.test("你好", "我的朋友"));

//或者
ILambda3 iLambda31 = (k, v) -> k + v;
System.out.println(iLambda31.test("hell", "world"));

总结:

(1) lambda表达式必须和接口进行绑定

(2) lambda表达式的参数,可以附带0-n个参数,括号中的参数类型可以不用指定,jvm会自动指定

(3) lambda表达式的返回值,如果代码块只有一行,并且没有大括号,不用写return关键字,单行代码的执行,会自动返回

如果添加了大括号或者多行代码,一定要添加return关键字返回结果

原文地址:https://www.cnblogs.com/freeht/p/13034499.html