您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Spring中的@RequestParam如何处理Guava的Optional?

Spring中的@RequestParam如何处理Guava的Optional?

Spring 4 java.util.Optional开箱 即用Optional(从Java 8开始)处理并保证其 本身不为null ,但最初的问题是关于Guava 在此特定情况下强烈反对com.google.common.base.Optional使用哪种用法@RequestParam(因为它 可以 为null)。

(关于番石榴Optional):

不要那样做,只需使用String并让Spring null以它的方式处理即可。

Optional<T>应该用作返回值 ,很少用作参数。在这种特殊情况下,Spring会将缺少的"name"参数映射到null,因此,即使在实现自定义属性编辑器后,您也将完成null检查:

@RequestMapping("foo")
@ResponseBody
public String foo(@RequestParam(required = false) final Optional name) {
  return "name: " + (name == null ? "null" : name.get());
}

这是完全不必要的(和滥用Optional),因为可以通过以下方法实现:

@RequestMapping("foo")
@ResponseBody
public String foo(@RequestParam(required = false) final String name) {
  return "name: " + (name == null ? "null" : name);
}
Java 2022/1/1 18:15:00 有551人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶