Java 如何创建新的ForwardingCache?
我一辈子都不知道如何创建一个新的ForwardingCache。我可以看到应该如何创建缓存,但不能看到ForwardingCache。我错过了什么(明显的课程)Java 如何创建新的ForwardingCache?,java,guava,Java,Guava,我一辈子都不知道如何创建一个新的ForwardingCache。我可以看到应该如何创建缓存,但不能看到ForwardingCache。我错过了什么(明显的课程) 编辑:我忘记添加我需要此转发,以便在缓存放置时通知我的侦听器。如果有更好的方法执行post put操作,请留下评论/回答。您缺少的是番石榴术语中Map和Cache的基本区别。因此,在guava缓存中,您可以提供一种方法来计算一个值(如果该值不存在),或者在预加载时执行这些操作 看这里 所以,我不认为你的put案例会出现,或者看不到它是如
编辑:我忘记添加我需要此转发,以便在缓存放置时通知我的侦听器。如果有更好的方法执行post put操作,请留下评论/回答。您缺少的是番石榴术语中Map和Cache的基本区别。因此,在guava缓存中,您可以提供一种方法来计算一个值(如果该值不存在),或者在预加载时执行这些操作 看这里 所以,我不认为你的put案例会出现,或者看不到它是如何出现的 至于创建ForwadCache。如果您仍然可以进一步了解/解释如何使用ForwadingCache,则基本上可以提供ForwardingCache.SimpleForwardingCache和override委托方法的具体实现,当然可以在那里使用Eventbus 但再次回到原来的问题,您可以很好地看到缓存上有RemovalListener,但没有addListener
如果使用CacheLoader或get操作本身(当找不到值时,您的计算逻辑),您可以使用EventBus。您缺少的是guava术语中Map和Cache的基本区别。因此,在guava缓存中,您可以提供一种方法来计算一个值(如果该值不存在),或者在预加载时执行这些操作 看这里 所以,我不认为你的put案例会出现,或者看不到它是如何出现的 至于创建ForwadCache。如果您仍然可以进一步了解/解释如何使用ForwadingCache,则基本上可以提供ForwardingCache.SimpleForwardingCache和override委托方法的具体实现,当然可以在那里使用Eventbus 但再次回到原来的问题,您可以很好地看到缓存上有RemovalListener,但没有addListener
只要想一想,您就可以在CacheLoader或get操作本身(找不到值时的计算逻辑)的情况下使用EventBus。与所有其他Guava转发类一样,您可以扩展
ForwardingCache
或ForwardingCache.SimpleForwardingCache
,覆盖您想要拦截的方法。您想使用这两种方法中的哪一种取决于您是想在构建时提供支持缓存
实现还是通过delegate()
方法。与所有其他Guava转发类一样,扩展ForwardingCache
或ForwardingCache.SimpleForwardingCache
,覆盖要拦截的方法。您想使用这两种方法中的哪一种取决于您是想在构建时提供支持缓存
实现还是通过委托()
method.您面临的问题是什么?不知道如何创建ForwardingCache。您面临的问题是什么?不知道如何创建ForwardingCache。谢谢。对于我想做的事情,EventBus似乎有点过分了。基本上,当一些东西被添加到我的缓存中时,我想检查另一个缓存中的一些东西。就这样。然而,我去看了事件总线的描述,你是对的,它会给我一个更通用的方式来通知我的听众。我会读更多的,但看起来EventBus是最简单的方式。谢谢。对于我想做的事情,EventBus似乎有点过分了。基本上,当一些东西被添加到我的缓存中时,我想检查另一个缓存中的一些东西。就这样。然而,我去看了事件总线的描述,你是对的,它会给我一个更通用的方式来通知我的听众。我会读更多的,但看起来EventBus是最简单的方式。