lambda的利与弊

@论程序猿的自我修养

浅析lambda的利与弊

lambda的好处
话不多说,上代码:

比如下列这段代码:
package demo04;
public class Test {
public static void main(String[] args) {
new Thread(new Runnable() {
@Override
public void run() {
System.out.println(“helloworld”);
}
}).start();
}
}
运行结果为:helloworld
接下来这段代码运行结果同上,不过代码量明显的降低,提升了开发效率。
package demo04;
public class Test {
public static void main(String[] args) {
new Thread(()-> System.out.println(“helloworld”)).start();
}
}

在举一个有参数的数组例子
public class Test66 {

public static void main(String[] args) {

    List<Phone> list = new ArrayList<Phone>();

    list.add(new Phone("小米", 2199));
    list.add(new Phone("荣耀9xpro", 2299));
    list.add(new Phone("华为", 4000));
    list.stream().forEach((c) -> System.out.println(c));
    }

Lambda表达式虽然带来了代码的简洁,但是也有其局限性。
通过上面的代码可以看出存在以下问题:

  1. 可读性差,与啰嗦的但是清晰的匿名类代码结构比较起来,Lambda表达式一旦变得比较长,就难以理解
  2. 不便于调试,很难在Lambda表达式中增加调试信息,比如日志
  3. 版本支持,Lambda表达式在JDK8版本中才开始支持,如果系统使用的是以前的版本,考虑系统的稳定性等原因,而不愿意升级,那么就无法使用。
    那么一般lambda什么时候该用什么时候不该用呢?
    Lambda比较适合用在简短的业务代码中,并不适合用在复杂的系统中,会加大维护成本。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值