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.