我有一个基本实现的MyService接口。MyServiceImpl我包装MyServiceImpl成一个MyService装饰器链。
为此,我创建了MyServiceDelegate一个抽象类,它接受一个MyService实例并将所有服务调用委托给提供的MyService实例。
但是在我的单元测试中,出于特定的需要,我需要找回 的第一个真正实现MyService,即MyServiceImpl,并且我只有一个MyServicewhich 指的是装饰器。
我只是想知道是否有可能使用 Guava,以一种功能性的方式进行递归,这将返回我已经装饰有很多层并且不是委托服务的“原始服务”。我想使用像 Function 这样的函数来返回委托服务,或者如果它是原始服务,则返回 null,但不知道要使用它。
我知道我可以通过 while 循环轻松做到这一点,而且我不是在寻找替代解决方案。只是想知道Guava是否可以解决这些问题。