java - 如何从 Spring Optional 返回特定字段而不是整个对象?
问题描述
如何从 Optional 而不是整个对象返回特定字段?
Optional<Scheme> scheme = schemeService.findBySerialNo(serialNo);
return scheme;
结果是:
{
"schemeId": 000001,
"personSN": "0000000001"
}
我想得到的只是 personSN 的值:“0000000001”。
解决方案
我看到一些关于在 Optional 类型上使用 get() 方法的奇怪评论。只是为了澄清 - 打开它不是一个好习惯!Tbh get() 应该被删除...如果你想对包装对象进行一些操作,请使用 ifPresent() 方法,如果你想对特定字段进行一些操作 - 使用 map()。阅读文档并始终尽量不要使用 get()。此外,如果您想获取包装的对象,您应该知道使用 Optional 意味着在获取它时可能会出错,因此您可以由于获取失败而引发自定义异常
推荐阅读
- asp.net-mvc - 使用 Html.EditorFor() 编辑/创建 Razor 页面
- java - MethodValidationInterceptor 和 @Validated @ModelAttribute
- css - 背景大小对背景颜色没有任何影响
- excel - 保护开启时图表代码不运行
- pact - Pact:如何匹配键与正则表达式匹配的对象?
- angular - 如何使用 ng2-signalr
- django - 如何访问 forms.py 定义中的运行时 request.session 值?
- r - 将 JSON 导出到文本文件
- javascript - 在 ngOnInit() 内部使用 ngOnInit() 外部的函数
- mysql - 如何使用 SELECT LAST_INSERT_ID(); 在mysql例程中插入语句后?