Я видел этот ответ здесь , показывающий, как сделать потокобезопасную ленивую инициализацию финального синглтона stati c.
Но что является лучшим решением, если у вас есть класс? ленивая загрузка не финал? (У него есть несколько методов, которые вы хотите вызвать после его создания)
Безопасно ли просто помещать вызовы метода в блок stati c?
public class Something {
private static class LazyHolder {
public static final Something INSTANCE = new Something();
static {
INSTANCE.setValue("foo");
}
}
public static Something getInstance() {
return LazyHolder.INSTANCE;
}
}