Reactor,检索嵌套(多级)对象的最佳实践?
Reactor, best practice to retrieve nested (multiple levels) objects?
假设有以下对象:
public class Employee {
private Address address;
public class Address {
private String street;
private String country;
以下两个过程中哪一个是“最佳”(最佳实践 and/or 性能)?
答:
return Mono.just(employee)
.map(employee -> employee.getAddress().getCountry())
B :
return Mono.just(employee)
.map(employee -> employee.getAddress())
.map(address -> address.getCountry())
第二种方法更可取:
return Mono.just(employee)
.map(employee -> employee.getAddress())
.map(address -> address.getCountry())
因为您可以通过为每个 getter 添加单独的函数或使用方法参考来使其更简单:
return Mono.just(employee).map(Emploee::getAddress).map(Address::getCountry)
这是一个显而易见的例子,但在更复杂的情况下,通过使用方法引用来简化代码可能很重要。
此外,方法链接 employee.getAddress().getCountry()
不是一个好习惯。您可以阅读更多关于方法链的讨论 there.
假设有以下对象:
public class Employee {
private Address address;
public class Address {
private String street;
private String country;
以下两个过程中哪一个是“最佳”(最佳实践 and/or 性能)?
答:
return Mono.just(employee)
.map(employee -> employee.getAddress().getCountry())
B :
return Mono.just(employee)
.map(employee -> employee.getAddress())
.map(address -> address.getCountry())
第二种方法更可取:
return Mono.just(employee)
.map(employee -> employee.getAddress())
.map(address -> address.getCountry())
因为您可以通过为每个 getter 添加单独的函数或使用方法参考来使其更简单:
return Mono.just(employee).map(Emploee::getAddress).map(Address::getCountry)
这是一个显而易见的例子,但在更复杂的情况下,通过使用方法引用来简化代码可能很重要。
此外,方法链接 employee.getAddress().getCountry()
不是一个好习惯。您可以阅读更多关于方法链的讨论 there.