美文网首页
lambda表达式中的几个问题,你遇到过几个?

lambda表达式中的几个问题,你遇到过几个?

作者: 杨hai | 来源:发表于2017-11-02 09:40 被阅读19次

android项目中引入lambda表达式,无疑是可以减少部分代码的书写,但是我在使用过程中,遇到了以下几个问题:

  1. 泛型不能获取,导致回调方法的参数不知道具体类型。
    如下代码传入了一个NoticeResponse的泛型,这个泛型约束了success方法的参数类型就是NoticeResponse类型。
new ISuccess<NoticeResponse>() {
        @Override
        public void success(NoticeResponse response) {
            // 处理服务器数据成功的情况
            }
    }

将上面的代码使用lambda简写以后,如下

response ->{}

因为lambda没法传入泛型,导致对应的代码不能简写。

  1. 关于回调方法会抛出异常,简写后,导致代码表达意思不明确。
new Consumer<LocationResponse>() {
                      @Override
                      public void accept(LocationResponse locationResponse) throws Exception {
                          Log.i("locationResponse",locationResponse.toString());

                      }
                  }

简写以后的代码

locationResponse ->{}

上面的代码很难知道有异常,如果测试过程中没有发现,到了线上一旦出现问题,准备懵逼。

这两个是我遇到的关于lambad的问题,你们又遇到过其他的吗?

关于什么是lambd表达式

相关文章

网友评论

      本文标题:lambda表达式中的几个问题,你遇到过几个?

      本文链接:https://www.haomeiwen.com/subject/paxopxtx.html