Guava CacheBuilder を正しく使用する方法を教えてください。
データに到達できない場合、getFromNetwork() は例外を発生させるか、null を返す必要がありますか? 実行例外を発生させて、guavaCache.get() を使用する必要があります。ドキュメントが未チェックの例外で何を意味するのかわかりませんか?
本来の使用方法で CacheBuilder を使用する必要がありますか? guavaCache.put() を使用していませんか? これは自動的に行われます。右?
guavaCache = CacheBuilder.newBuilder()
.maximumSize(maxCapacity)
.expireAfterWrite(1, TimeUnit.HOURS)
.removalListener(new RemovalListener<Object, Object>() {
@Override
public void onRemoval(RemovalNotification<Object, Object> notification) {}
})
.build(
new CacheLoader<String, byte[]>() {
public byte[] load(String key) throws Exception {
return getFromNetwork(key);
}
});
private byte[] get(Object... params) {
String url = paramsToUri(params).toString();
byte[] data = null;
data = guavaCache.get(url); //?
data = guavaCache.getUnchecked(url); //?
return data;
}