![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Frog |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 11.3.2006 Где: The swamp Репутация: нет Всего: нет |
Господа,не могли бы вы на простейшем примере обьяснить мне использование метода , forName() - особенно учитывая что приложение будет находиться в джаре , и проходить обфускацию (в том числе и подгружаемый класс). Любой опыт welcome
|
|||
|
||||
| onsh76 |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 20.11.2005 Где: Beautiful BC Репутация: нет Всего: 5 |
Используя forName метод в сочетании с последующим вызовом newInstance(), можно создать инстанс нужного класса. Классически, экземпляр (инстанс) класса создается с помощью оператора new, например:
Ну а можно например и вот так сделать то же самое:
Зачастую очень удобно применять модифицированный вариант вышеописанного используя Command pattern. Например:
Пример очень простой, не хотел переусложнять жизнь... Sorry, если что не так.. |
||||||
|
|||||||
| 3,14 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: 6 Всего: 24 |
При использовании обфускатора с применением метода forName, нужно быть осторожнее, зачастую обфускация меняет имена классов, поэтому вызов forName, работавший в оригинале, работать после обфускации не будет.
-------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
А имена публичных классов разве будут изменены? Ведь это сделает работу с классом невозможной. Или это настраивается при обфускации? -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| 3,14 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: 6 Всего: 24 |
На вскидку утверждать не буду, но вроде были обфускаторы к-ые делают рефакторинг кода. Если у тебя jar к-ый предназначен только для запуска, то такой вариант становиться большим плюсом. -------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
|||
|
||||
| Frog |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 11.3.2006 Где: The swamp Репутация: нет Всего: нет |
Большое спасибо вам всем за помощь и советы (особо за примеры кода) , теперь буду эксперементировать , кодить и думать - в вопросе теперь достаточно ясности
|
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |