2016-11-27 95 views
2

我不想在我的模块中使用java VERSION_1_8。 但在使用此代码是一个库中的代码片段:如何将Lambda转换为简单的Java函数表达式

RxPaparazzo.takeImage(this) 
      .crop(options) 
      .size(size) 
      .usingGallery() 
      .subscribe(response -> { 
       if (response.resultCode() != Activity.RESULT_OK) { 
        response.targetUI().showUserCanceled(); 
        return; 
       } 

       // Log.e("response",response.data()); 

       response.targetUI().loadImage(response.data()); 
      }); 

现在我怎么可以把它改成简单的Java功能体现在哪里?

回答

7

可以使用下面的技巧将其更改为匿名类Android Studio中

  1. 点击 “ - >” 或获取光标 “ - >”
  2. Alt键 + 输入 (或选项 + 在Mac上返回
  3. 选择用匿名类替换lambda。

截图来解释:

Steps

1

它应该是沿着下面的一些事情。

RxPaparazzo.takeImage(this) 
     .crop(options) 
     .size(size) 
     .usingGallery() 
     .subscribe(new _ON_CALLBACK_LISTENER() 
     { 
      @Override 
      void _ON_CALLBACK (_FIELD_TYPE response){ 
       if (response.resultCode() != Activity.RESULT_OK) { 
        response.targetUI().showUserCanceled(); 
        return; 
       } 

       // Log.e("response",response.data()); 

       response.targetUI().loadImage(response.data()); 
     }}); 

你需要知道指定listenerType(_ON_CALLBACK_LISTENER) ,也是参数类型(_FIELD_TYPE)

只需将鼠标悬停代码,并且要有一定的提示和Alt-Enter键可以自动生成代码存根为你。