Como armazenar em cache com referências fracas quando os valores se referem a chaves?

Estou usando goiabaCache<Key, Value>. Sempre queKey&nbsp;não é mais atingível, a entrada do cache deve ser coletada como lixo (algum dia ...). UsandoCacheBuilder.weakKeys()&nbsp;faria exatamente isso, se não houvesse uma referência deValue&nbsp;de volta aKey.

Eu poderia fazer esta referência fraca, mas isso poderia a qualquer momento fazer a minhaValue&nbsp;completamente inválido. Eu poderia lidar com isso, mas eu prefiro não.

eu poderia usarweakValues(), mas isso poderia levar a despejos muito cedo, como meus valores são referenciados por um curto período de tempo.

Talvez eu possa usarsoftValues(), masSoftReferences sãobastante quebrado.

Provavelmente estou recebendo algo errado ... qual é a solução correta?

Atualizar

O que eu preciso poderia ser alcançado simplesmente colocando uma referênciaValue&nbsp;em cadaKey, mas isso não é possível comoKey&nbsp;não está sob meu controle. Se fosse, então eu não precisaria de cache, sem referências fracas, nada.

Desta forma, cadaKey&nbsp;manteria seu correspondenteValue&nbsp;acessível, o que é bom1. Além disso, cadaValue&nbsp;manteria suaKey&nbsp;alcançável, mas isso não é problema, já que não existem referências aValue.

1&nbsp;Alguma expiração seria melhor, mas não é necessária.