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