JDK8新特性之lambda表达式

lambda表达式:就是一个可传递的匿名内部类。

使用要求:接口有且仅有一个抽象方法。

使用匿名内部类,但不使用lambda表达式时我们一般使用方式:

接口A:

public interface InterfaceA {
    void execute();
}

匿名内部类调用:

public class LambdaTest {

    @Test
    public void testLambda(){
        (new InterfaceA() {
            @Override
            public void execute() {
            System.out.println("hello a");
            }
        }).execute();
    }
}

使用lambda表达式则可以简化为:

public class LambdaTest {

    @Test
    public void testLambda(){
        // 无参无返回值的lambda表达式
        InterfaceA ab=() -> {System.out.println("hello ab");};
        ab.execute();
    }
}

相比之下,代码简化了很多。

lambda表达式的语法:

1.无参无返回值:() -> {执行代码块}

2.无参有返回值:() -> { 执行代码块; return 返回值};

public interface InterfaceB {

    String getString();
}

 @Test
    public void testLambda2(){
        InterfaceB ab=() -> {
            System.out.println("return string");
            return "hello world";};
       System.out.println(ab.getString());
    }

3.有参无返回值:(参数a,参数b)->{代码块}

// 接口
public interface InterfaceA {
    void execute(String string);
}

// 测试类
public class LambdaTest {

    @Test
    public void testLambda(){
        InterfaceA ab=(a) -> {System.out.println(a);};
        ab.execute("hello");
    }
}
public interface InterfaceA {
    void execute(String string,String string2);
}
 
@Test
public void testLambda(){
    InterfaceA ab=(a,b) -> {System.out.println(a+" "+b);};
    ab.execute("hello","world");
}

4,有参有返回值:(a,b) ->{执行代码块;return 返回值}

public interface InterfaceB {

    String getString(String string,String string2);
}

 @Test
    public void testLambda2(){
        InterfaceB ab=(a,b) -> {
            System.out.println("return string");
            return a+b;};
       System.out.println(ab.getString("hello","world"));
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值