Open alexey-pelykh opened 1 month ago
e.g. in
toString()
of a class that needs to print a memoized supplier value without causing the memoization
Does the default toString()
of the memoizing supplier not work for you? It doesn't trigger the memoization if it hasn't occurred yet.
My inclination is that this is niche enough that I'd suggest just writing your own, perhaps even wrapping a single-element LoadingCache
or something.
While toString()
use-case could be mitigated, I fail to see how exposing a property that's already there can be harmful. Currently I have to resort to using Apache Commons because there's LazyInitializer.html#isInitialized
- however I find it's usage bulky in comparison to MemoizingSupplier
.
API(s)
How do you want it to be improved?
Get memoizing supplier state without causing memoization
Why do we need it to be improved?
To check the memoizing supplier state without changing it
Example
Current Behavior
MemoizingSupplier::initialized
is not exposedDesired Behavior
MemoizingSupplier::initialized
is exposedConcrete Use Cases
e.g. in
toString()
of a class that needs to print a memoized supplier value without causing the memoizationChecklist
[X] I agree to follow the code of conduct.
[X] I have read and understood the contribution guidelines.
[X] I have read and understood Guava's philosophy, and I strongly believe that this proposal aligns with it.