Я создал синглтон в соответствии с тем, как «эффективный Java» говорит об этом: https://sites.google.com/site/io/effective-java-reloaded (см. Слайды на стр. 35, я думаю)
Так что мой enum-синглтон-класс выглядит так:*
public enum MySettings {
INSTANCE;
private int someValue;
private MySettings() {
someValue = 10;
}
public int getSomeValue() {
return someValue;
}
}
Теперь я попытался использовать его в классе, но во время выполнения он выдавал ошибку:
public class MongoDaoImpl implements MongoDao {
private int mongoConnectionPoolSize = MySettings.INSTANCE.getSomeValue();
}
Почему здесь происходит сбой?
Дело в моем синглтонечтобы хранить информацию, связанную с конфигурацией, чтобы я мог использовать ее для установки значений типа конфигурации, чтобы мне не пришлось жестко их кодировать.
Я получаю сообщение об ошибке для MongoDaoImpl:
java.lang.NoClassDefFoundError: Could not initialize class MongoDaoImpl
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
java.lang.reflect.Constructor.newInstance(Constructor.java:513)
org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:126)