Sto provando a creare una cache di base con un valore booleano, e l'ho fatta come tale:
private Boolean _valueCache = null;
private boolean getValue() {
try {
if (_valueCache == null) { // if cache was never filled
return _valueCache = getReader().getMyBooleanProperty(); // fill it and return the new value
}
return _valueCache; // else, return the cache
} catch (NullPointerException ex) { // getReader() returned null
return false; // that return may not be null in the future, so set nothing
}
}
Questo va contro le migliori pratiche? (lasciando che un Boolean
abbia 3 valori: true
, false
e null
) Voglio solo mettere in cache questo valore, quindi non voglio creare un'intera HashMap personalizzata che riproduca questo comportamento con un metodo get-or-default. Detto questo, non ho mai fatto una cache così piccola, quindi non conosco gli svantaggi.
Per chiarire , intendevo "ternario" come in "3-state", in opposizione a "binario" come in "2-stato". Ci scusiamo per qualsiasi confusione.