2016-08-26 6 views
-2

このコードをラムダ式に置き換えることは可能ですか?Java - このコードをラムダ式に置き換えるにはどうすればいいですか?

repository.registerLoginHandler(new ITeamRepository.ILoginHandler() { 
     public ILoginInfo challenge(ITeamRepository repository) { 
      return new ILoginInfo() { 
       public String getUserId() { 
        return "username"; 
       } 
       public String getPassword() { 
        return "pass";       
       } 
      }; 
     } 
    }); 

ILoginHandlerは、機能インタフェースです:

ITeamRepository.ILoginHandler.ILoginInfo challenge(ITeamRepository repository) 

答えて

4
repository.registerLoginHandler(repo -> new ILoginInfo() { 
    public String getUserId() { 
     return "username"; 
    } 
    public String getPassword() { 
     return "pass";       
    } 
}); 
0
repository.registerLoginHandler(repository -> { 
    return new ILoginInfo() { 
     public String getUserId() { 
      return "username"; 
     } 
     public String getPassword() { 
       return "pass";       
     } 
    }; 
}); 

編集:その他の答えは、よりコンパクトなので、良いです。

+0

なぜ '{return' ...'} 'ですか?これをラムダでスキップすることができます。 – Pshemo

+0

ええと私はちょうど3リターンを見て、そこにいくつかのロジックがあると思った。私は彼がちょうど新しいクラスを作成したことを知らなかった。 – Jhonny007

関連する問題