2017-05-25 92 views
0

是否有可能使用lambda表达式返回具有不同身体类型的ResponseEntity对象? 在下面的代码中,我当然有一个不好的返回类型。使用lambda表达式返回具有不同身体类型的ResponseEntity对象

competenceRepository.findByNameIgnoreCase(postCompetenceDTO.getName()).map(competence -> { 
      return new ResponseEntity<String>("Competence already exist!", HttpStatus.CONFLICT); 
     }).orElseGet(() -> { 
      Competence competence = new Competence(); 
      competence.setName(postCompetenceDTO.getName()); 

      return new ResponseEntity<CompetenceDTO>(competence.convertToCompetenceDTO(),HttpStatus.OK); 
     }); 

的问候, 预先感谢您

回答

1

是的,它是可能的,你需要在你ResponseEntity指定Object,所以你可以把任何东西在里面。你也可以从过多的括号粗鲁。

competenceRepository.findByNameIgnoreCase(postCompetenceDTO.getName()) 
     .map(c -> new ResponseEntity<Object>("Competence already exist!", HttpStatus.CONFLICT)) 
     .orElseGet(() -> { 
      Competence competence = new Competence(); 
      competence.setName(postCompetenceDTO.getName()); 
      return new ResponseEntity<Object>(competence.convertToCompetenceDTO(), HttpStatus.OK); 
}); 

希望它有帮助!

相关问题