Stephen Colebourne schrieb:
I believe that we should remove this class.
The class performs no useful purpose, as there is a better way to use a
separate class to create a value lazily:
// Lazy initialization holder class idiom for static fields
private static class FieldHolder {
static final FieldType field = computeFieldValue();
}
static FieldType getField() { return FieldHolder.field; }
http://java.sun.com/developer/technicalArticles/Interviews/bloch_effective_08_qa.html
Since LazyInitializer requires the user to create a new instance of a
new class anyway, the benefits of the 'advanced' lazy initializer code
disappear (in fact, its worse, due to the volatile variable requiring a
memory check every time, whereas the regular check above sets a simple
static final.
Any justifications for keeping this?
The lazy initialization holder class idiom only applies for static
fields of a class. The LazyInitializer class uses the double-check idiom
and is intended for lazy initialization of instance fields. So there may
be different use cases for it.
Maybe this fact can be better emphasized in the documentation and/or the
class name?
Oliver
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org