Java 当返回类型是REST服务中的对象时返回字符串

Java 当返回类型是REST服务中的对象时返回字符串,java,spring,spring-boot,rest,intellij-idea,Java,Spring,Spring Boot,Rest,Intellij Idea,我正在创建一个REST服务,它返回可以过滤的用户对象。我在返回用户时使用@ResponseBody User。但是当id不存在时,我想显示一个字符串,上面写着“请提供一个有效的用户id”。当返回类型为User时,如何执行此操作 代码: 有人知道怎么做吗?只需返回对象即可 public@ResponseBody对象getUserPath() 更新1: 在这种情况下,更好的方法是抛出异常,请使用@ControllerAdvice+@ExceptionHandler处理它,并使用下面的字符串返回错误。

我正在创建一个REST服务,它返回可以过滤的用户对象。我在返回用户时使用@ResponseBody User。但是当id不存在时,我想显示一个字符串,上面写着“请提供一个有效的用户id”。当返回类型为User时,如何执行此操作

代码:

有人知道怎么做吗?

只需返回对象即可
public@ResponseBody对象getUserPath()

更新1
在这种情况下,更好的方法是抛出异常,请使用
@ControllerAdvice
+
@ExceptionHandler
处理它,并使用下面的字符串返回错误。代码将完成您的工作。这将返回您的自定义字符串和正确的HTTP状态代码

@GetMapping("/{Id}")
public ResponseEntity<User>  getUserPath(@RequestParam int Id) {

    User user = userRepository.findById(Id).get();
    if (user==null){
        return new ResponseEntity("Please provide a valid user ID", HttpStatus.NOT_FOUND);
    }
    return new ResponseEntity<User>(user, HttpStatus.FOUND);
}
@GetMapping(“/{Id}”)
公共响应性getUserPath(@RequestParam int-Id){
User=userRepository.findById(Id).get();
if(user==null){
返回新的ResponseEntity(“请提供有效的用户ID”,HttpStatus.NOT_FOUND);
}
返回新的响应属性(用户,HttpStatus.FOUND);
}

在这种情况下,您应该返回404。如果你想的话,我会告诉你的。
@GetMapping("/{Id}")
public ResponseEntity<User>  getUserPath(@RequestParam int Id) {

    User user = userRepository.findById(Id).get();
    if (user==null){
        return new ResponseEntity("Please provide a valid user ID", HttpStatus.NOT_FOUND);
    }
    return new ResponseEntity<User>(user, HttpStatus.FOUND);
}