java ConcurrentMap获取为空
我有这张地图java ConcurrentMap获取为空,java,guava,Java,Guava,我有这张地图 ConcurrentMap<String, Byte[]> companyLogo = new MapMaker() .concurrencyLevel(Runtime.getRuntime().availableProcessors()) .weakKeys() .initialCapacity(1000) .exp
ConcurrentMap<String, Byte[]> companyLogo = new MapMaker()
.concurrencyLevel(Runtime.getRuntime().availableProcessors())
.weakKeys()
.initialCapacity(1000)
.expiration(24, TimeUnit.HOURS)
.makeMap();
但是
companygo.get(“cpr48124”)代码>为空。这怎么可能呢?我不熟悉MapMaker
是什么,但我猜weakKeys
可能是你的问题
新条目的“弱点”很可能使其无法使用,因为没有其他引用。尝试打印以下内容:ArrayUtils.toObject(resize(resize(request,((Byte[])request.getSession().getAttribute(COMPANY_LOGO_KEY+imageId)))我不熟悉MapMaker
is,但是我想这可能是你的问题。你试过用另一个字节[]吗,我是说“ssssss”。getBytes()。。。或者类似的东西,只是为了测试一下?。这可能是您会话的问题attribute@bradimus我移除了weakKeys,它就工作了。请转换成answer@bradimus由于“cpr48124”
是一个字符串文本,因此它将被插入,因此始终可以访问。我很惊讶weakKeys()。
companyLogo.put("cpr48124", ArrayUtils.toObject(resize (request, ((Byte[])request.getSession().getAttribute(COMPANY_LOGO_KEY+ imageId)))));
companyLogo.get("cpr48124");