2016-11-27 196 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鍵可以自動生成代碼存根爲你。