Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何创建新的ForwardingCache?_Java_Guava - Fatal编程技术网

Java 如何创建新的ForwardingCache?

Java 如何创建新的ForwardingCache?,java,guava,Java,Guava,我一辈子都不知道如何创建一个新的ForwardingCache。我可以看到应该如何创建缓存,但不能看到ForwardingCache。我错过了什么(明显的课程) 编辑:我忘记添加我需要此转发,以便在缓存放置时通知我的侦听器。如果有更好的方法执行post put操作,请留下评论/回答。您缺少的是番石榴术语中Map和Cache的基本区别。因此,在guava缓存中,您可以提供一种方法来计算一个值(如果该值不存在),或者在预加载时执行这些操作 看这里 所以,我不认为你的put案例会出现,或者看不到它是如

我一辈子都不知道如何创建一个新的ForwardingCache。我可以看到应该如何创建缓存,但不能看到ForwardingCache。我错过了什么(明显的课程)


编辑:我忘记添加我需要此转发,以便在缓存放置时通知我的侦听器。如果有更好的方法执行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是最简单的方式。