Множественные загрузчики классов и синглтоныJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Множественные загрузчики классов и синглтоны

Сообщение Anonymous »


Недавно я узнал, что Java-программа может иметь несколько загрузчиков классов. Я нашел несколько сообщений StackOverflow, в которых объяснялось, как создавать одноэлементные объекты.

Общий подход выглядел примерно так:

if (экземпляр == null) { ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); если (classLoader == ноль) { classLoader = Singleton.class.getClassLoader(); } Class sclass = (classLoader.loadClass(Singleton.class.getCanonicalName())); } Я не совсем понимаю, как это избавляет от проблемы нескольких загрузчиков классов. Если у вас есть несколько ClassLoaders, экземпляр будет иметь значение null, когда каждый из них попытается загрузить класс. Не правда ли? Было бы полезно получить краткое объяснение того, как это работает.

Кроме того, в какой момент мы сможем получить реальный экземпляр Singleton? Я мог бы сделать что-то вроде instance = (Singleton) sclass.newInstance();, но это означало бы создание нового экземпляра для каждого ClassLoader.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»