powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как создать экземпляр класса от Singleton патерна через рефлекшен?
7 сообщений из 7, страница 1 из 1
Как создать экземпляр класса от Singleton патерна через рефлекшен?
    #34517697
swerg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как создать экземпляр класса от Singleton патерна через рефлекшен?

Описываю проблему:
Есть строка с названием класса реализующий Singleton патерн.
Как получить экземпляр этого класса?
Дефаул конструктор private !!!

Вообще это возможно?

P.S. Вопрос с собеседования...
...
Рейтинг: 0 / 0
Как создать экземпляр класса от Singleton патерна через рефлекшен?
    #34517729
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запросто. Если конструкторов там один и он без параметров (для простоты не буду циклы всякие писать, проверки и тыды), то следующий код без проблем сделает что надо:
Код: plaintext
1.
2.
3.
4.
5.
...
    Constructor constructor = Singleton. class .getDeclaredConstructors()[ 0 ];
    constructor.setAccessible(true);
    Singleton singleton = constructor.newInstance();
...
Ну и как всегда играют настройки манагера безопасности. Через его можно запретить доступ к приватным конструкторам.
...
Рейтинг: 0 / 0
Как создать экземпляр класса от Singleton патерна через рефлекшен?
    #34517987
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у singleton обычно есть метод getInstance, можно через этот метод экземпляр класса и получить

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
 public   class  Test {
     private   static  Test ourInstance =  new  Test();

     public   static  Test getInstance() {
         return  ourInstance;
    }

     private  Test() {
    }


     public  String toString() {
         return  "this is a test";
    }

     public   static   void  main(String[] args)  throws  Exception {
        Method method = Test. class .getMethod("getInstance",  null );
        Test test = (Test) method.invoke( null ,  null );
        System.out.println(test);
    }
}
...
Рейтинг: 0 / 0
Как создать экземпляр класса от Singleton патерна через рефлекшен?
    #34518177
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Причем тут методы getInstace?? Речь о том, можно ли в обход стандартных механизмов создать нелегальный инстанс Signleton-а...
...
Рейтинг: 0 / 0
Как создать экземпляр класса от Singleton патерна через рефлекшен?
    #34518282
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗашедшийПричем тут методы getInstace?? Речь о том, можно ли в обход стандартных механизмов создать нелегальный инстанс Signleton-а...
тогда я неправильно понял задачу, просто из

swergОписываю проблему:
Есть строка с названием класса реализующий Singleton патерн.
Как получить экземпляр этого класса?
Дефаул конструктор private!!!
не совсем очевидно, что нужно получить нелегальный инстанс.
...
Рейтинг: 0 / 0
Как создать экземпляр класса от Singleton патерна через рефлекшен?
    #34518737
swerg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо Зашедший.

До этого уроня я еще не дошел.

P.S. Каждый ламер мечтает стать хакером.
...
Рейтинг: 0 / 0
Как создать экземпляр класса от Singleton патерна через рефлекшен?
    #34518811
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vas0тогда я неправильно понял задачу, просто <...> не совсем очевидно, что нужно получить нелегальный инстанс.
Кстати да, о такой постановке задачи я даже не подумал - слишком уж просто для вопроса на собеседованиии имхо :)
swergСпасибо Зашедший. До этого уроня я еще не дошел.
"Это" как раз очень просто, практически основы, в жабке есть куда более навороченные вещи :( Чем больше в ней варишься, тем больше понимаешь, что знать Java полностью просто невозможно (если рассматривать вместе J2SE/J2EE/J2ME).
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как создать экземпляр класса от Singleton патерна через рефлекшен?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]