Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Динамический вызов класса


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

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


Автор: Stolzen 11.8.2011, 09:14
Так как вы написали - никак

Вариант:

Код

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

Автор: AlexeyVorotnikov 11.8.2011, 09:16
Посмотрите на класс java.lang.Class. В частности на его методы forName() и newInstance().

Автор: nc30 11.8.2011, 11:07
Небольшая статья про рефлексию: http://www.quizful.net/post/java-reflection-api

Автор: diktator 11.8.2011, 13:34
Ребята спасибо. Мне уже подсказали, не успел тему закрыть.

Делается так с вызовом конструктора и метода 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);

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)