gpt4 book ai didi

java - RObject.isExists() 检查内存还是服务器?

转载 作者:行者123 更新时间:2023-12-01 17:06:11 26 4
gpt4 key购买 nike

下面的代码仅抛出一次 NullPointerException。

    public Optional<Object> getBucketObject(String key) {
return getKey(key, client::getBucket, RBucket::get);
}

public Optional<Long> getLong(String key) {
return getKey(key, client::getAtomicLong, RAtomicLong::get);
}

public Optional<Double> getDouble(String key) {
return getKey(key, client::getAtomicDouble, RAtomicDouble::get);
}


public <T, K extends RObject> Optional<T> getKey(String key, Function<String, K> getMethod, Function<K, T> returnMethod) {
K cachedObj = getMethod.apply(key);

return
cachedObj.isExists()
? Optional.of(returnMethod.apply(cachedObj)) (***line 50)
: Optional.empty();
}

这是堆栈跟踪:

java.util.Objects.requireNonNull (Objects.java:203)
java.util.Optional.<init> (Optional.java:96)
java.util.Optional.of (Optional.java:108)
xxx.xxx.getKey (xxx.java:50)

我想知道这怎么可能。我发现的唯一可能性是在 isExists() 和 apply() 之间 key 已在服务器中删除。但只有 isExists() 方法检查服务器而不是检查 RAM 时才有意义。

我尝试在 redisson 文档中搜索,但没有说明是否在服务器或 RAM 上进行检查。

https://javadoc.io/doc/org.redisson/redisson/3.3.2/org/redisson/api/RObject.html#isExists--

最佳答案

根据Redis commands mapping list RObject.isExists() 绑定(bind)到 EXISTS Redis 命令

关于java - RObject.isExists() 检查内存还是服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61463664/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com