Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Динамический вызов класса 
:(
    Опции темы
diktator
Дата 11.8.2011, 00:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 27.5.2010

Репутация: нет
Всего: нет



Здраствуйте. Подскажите пожалуйста как на java вызываются динамически классы. Имею ввиду что-то типа такого.

Код
String[] s = {"a", "b", "c"};
        
{s[1]} s = new {s[1]}();


PM MAIL   Вверх
Stolzen
Дата 11.8.2011, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: 23
Всего: 48



Так как вы написали - никак

Вариант:

Код

Class<?> cl = SomeClass.class;
Object o = cl.newInstance();


Это сообщение отредактировал(а) Stolzen - 11.8.2011, 09:15


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
AlexeyVorotnikov
Дата 11.8.2011, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 658
Регистрация: 18.6.2007
Где: Москва

Репутация: 10
Всего: 18



Посмотрите на класс java.lang.Class. В частности на его методы forName() и newInstance().


--------------------
RTFM!
Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification
PM MAIL   Вверх
nc30
Дата 11.8.2011, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Интересующийся :)
*


Профиль
Группа: Участник
Сообщений: 140
Регистрация: 24.6.2010
Где: Санкт-Петербург

Репутация: 5
Всего: 8



Небольшая статья про рефлексию: http://www.quizful.net/post/java-reflection-api
PM MAIL   Вверх
diktator
Дата 11.8.2011, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 27.5.2010

Репутация: нет
Всего: нет



Ребята спасибо. Мне уже подсказали, не успел тему закрыть.

Делается так с вызовом конструктора и метода a1 в классе constructor2
Код

Class cls = Class.forName("javaapplication5.constructor2");
            Class partypes[] = new Class[2];
            partypes[0] = String.class;
            partypes[1] = String.class;
            Constructor ct = cls.getConstructor(partypes);
            Object arglist[] = new Object[2];
            arglist[0] = "435";
            arglist[1] = "fsdfdsf";
            Object retobj = ct.newInstance(arglist);        
            
            Method mthd=cls.getMethod("a1");            
            mthd.invoke(retobj);

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0482 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.