Lambda表达式的省略模式

Lambda表达式的省略模式

  • 参数类型可以省略,但是有多个参数的情况下,不能只省略一个
  • 如果参数有且仅有一个,那么小括号可以省略
  • 如果代码块的语句只有一条,可以省略大括号和分号,甚至是return
  • 代码演示:
    LambdaDemo类
package Demo;

public class LambdaDemo {
    public static void main(String[] args) {
        useAddable((int x,int y)->{
            return x+y;
        });

        //参数类型可以省略
        useAddable((x,y)->{
            return x+y;
        });

        //但是有多个参数的情况下,不能只省略一个
//        useAddable((int x,y)->{
//            return x+y;
//        });

        System.out.println("---------------------------------------------------------------------------------------");

        useFlyable((String s)->{
            System.out.println(s);
        });
        //参数类型可以省略
        useFlyable( (s)->{
            System.out.println(s);
        });
        //如果参数有且只有一个,那么小括号可以省略
        useFlyable( s->{
            System.out.println(s);
        });
        //如果代码块的语句只有一条,可以省略大括号和分号,如果有return,return也要省略掉
        useFlyable( s->
            System.out.println(s)
        );

        useAddable((x,y)->x+y);


        //最终形态!
        useAddable((x,y)->x+y);

        useFlyable(s-> System.out.println(s));
    }

    private static void useAddable(Addable a) {
        System.out.println(a.add(3,5));
    }
    private static void useFlyable(Flyable a) {
        a.fly("我会飞");
    }
}

Addable接口

package Demo;
public interface Addable {
    int add(int x,int y);
}

Flyable接口

package Demo;
public interface Flyable {
    void fly(String s);
}

你可能感兴趣的:(JAVASE,java,开发语言,后端,Lambda,intellij-idea)