如何 return 在 Java 的条件语句范围内对象?
How to return object in conditional statement scope in Java?
我正在学习javaspring。我必须获得一个用户,然后将 Foo
保存到数据库中。用户对象是可选的,所以我必须把新的 Foo 放在 ifPresent
中,然后我怎么能 return 结果,而我不能像 java 脚本那样使用 let
?
@PostMapping("/foo")
public ResponseEntity<Foo> createFoo(@Valid @RequestBody Checkout checkout) throws URISyntaxException {
Optional<User> _user = userRepository.findById(userId);
_user.ifPresent(
user->
Foo _foo = checkout.getFoo();
_foo.setUser(user);
Foo foo = checkoutService.saveFoo(_foo );
}
);
return ResponseEntity
.created(new URI("/api/foo/" + foo .getId()))
.headers(HeaderUtil.createEntityCreationAlert(applicationName, true, ENTITY_NAME, result.getId().toString()))
.body(foo );```
你可以这样做:
@PostMapping("/foo")
public ResponseEntity<Foo> createFoo(@Valid @RequestBody Checkout checkout) throws URISyntaxException {
Optional<User> _user = userRepository.findById(userId);
Foo foo = _user.map(user -> {
Foo _foo = checkout.getFoo();
_foo.setUser(user);
return checkoutService.saveFoo(_foo);
}).orElse(null);
return ResponseEntity
.created(new URI("/api/foo/" + foo .getId()))
.headers(HeaderUtil.createEntityCreationAlert(applicationName, true, ENTITY_NAME, result.getId().toString()))
.body(foo );
}
映射允许 return 另一种类型的对象,在这种情况下我们 return 值 return 由 checkoutService.saveFoo(_foo) 编辑; 并且我们将其存储在 foo 变量中,以防 userRepository.findById(userId) returns 为 null,您可以使用 .orElse() 作为注释 @QBrute.
Foo foo = _user.map(user -> {
Foo _foo = checkout.getFoo();
_foo.setUser(user);
return checkoutService.saveFoo(_foo);
}).orElse(<default value>);
我正在学习javaspring。我必须获得一个用户,然后将 Foo
保存到数据库中。用户对象是可选的,所以我必须把新的 Foo 放在 ifPresent
中,然后我怎么能 return 结果,而我不能像 java 脚本那样使用 let
?
@PostMapping("/foo")
public ResponseEntity<Foo> createFoo(@Valid @RequestBody Checkout checkout) throws URISyntaxException {
Optional<User> _user = userRepository.findById(userId);
_user.ifPresent(
user->
Foo _foo = checkout.getFoo();
_foo.setUser(user);
Foo foo = checkoutService.saveFoo(_foo );
}
);
return ResponseEntity
.created(new URI("/api/foo/" + foo .getId()))
.headers(HeaderUtil.createEntityCreationAlert(applicationName, true, ENTITY_NAME, result.getId().toString()))
.body(foo );```
你可以这样做:
@PostMapping("/foo")
public ResponseEntity<Foo> createFoo(@Valid @RequestBody Checkout checkout) throws URISyntaxException {
Optional<User> _user = userRepository.findById(userId);
Foo foo = _user.map(user -> {
Foo _foo = checkout.getFoo();
_foo.setUser(user);
return checkoutService.saveFoo(_foo);
}).orElse(null);
return ResponseEntity
.created(new URI("/api/foo/" + foo .getId()))
.headers(HeaderUtil.createEntityCreationAlert(applicationName, true, ENTITY_NAME, result.getId().toString()))
.body(foo );
}
映射允许 return 另一种类型的对象,在这种情况下我们 return 值 return 由 checkoutService.saveFoo(_foo) 编辑; 并且我们将其存储在 foo 变量中,以防 userRepository.findById(userId) returns 为 null,您可以使用 .orElse() 作为注释 @QBrute.
Foo foo = _user.map(user -> {
Foo _foo = checkout.getFoo();
_foo.setUser(user);
return checkoutService.saveFoo(_foo);
}).orElse(<default value>);