java: Instantiate class from string

I was looking for a method to execute classes’ functions in a loop.
Classes are defined in xml file as following:


		
		
		
		
	

So, I had to do the following:
1. create Interface RunClasses

public interface RunClasses {
    public void action(HashMap<ArgsEnum, Object> attributes, Elements elements);
}

2. create extended classes ClassA and ClassB as following:

public class ClassA implements RunClasses{ {
    public void action(HashMap<ArgsEnum, Object> attributes, Elements elements)
{
// do some actions here for ClassA
}
}

3. execute our classes in loop

ArrayList<String> classes = new ArrayList<String>();
classes = getListOfClassFromXmlFile(); //there are more than a million ways to parse xml files. Find some to do it.

try {
            for (String className: classes)
            {
                Class classToRun = Class.forName(className);
                RunClasses runClasses = (RunClasses)classToRun.newInstance();
                runClasses.action(attributes, elements);
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();  
        } catch (InstantiationException e) {
            e.printStackTrace();  
        } catch (IllegalAccessException e) {
            e.printStackTrace();  
        }

This process will execute all your classes by name in a loop.

6 comments

  1. Понимаешь, тут такое дело – я жутко ленивый человек. Если мне это не жизненно необходимо прямо сейчас, то я ни за что не возьмусь.

    Т.е. сидеть и читать/слушать лекцию, чтобы мне это потом пригодилось? Не мое. Вот у меня была конктерная задача, я нашел ее решение за пару минут. Записал сюда, в будущем буду помнить и если надо подгляжу в пост.
    Возможно это и не правильный подход и я так никогда не стану ТруЪ Джава девелопером, но на каждодневные нужды мне хватает всяких ноледжбейзов. Доки и лекции – это обычно последнее что я делаю, а потом все равно пишу сюда в качестве напоминалки.

    Кстати, на Девконфу в неформальной обстановке обсуждали как тестер может стать девелопером. Ну собственно это и есть мой путь из тестеров в девелоперы. Думаю, что могу разверную лекцию сделать для ДевКлаба. 🙂

  2. “как тестер может стать девелопером” – а что, это мысль. может быть даже стоит об этом новогодний доклад сделать? 🙂

    У меня кстати мысль давно витает для доклада “наоборот” – как девелопер может стать тестером.

  3. я думал в этом году сделать доклад, как заработать бабла на кодинге и Интернете самостоятельно.
    Но теперь тема про трансформацию тестера в девелоперы мне даже больше нравится. Можно баттл устроить 🙂
    Можно в стиле Кафки (Превращение) сделать

  4. “простой коммивояжёр, проснувшись утром, обнаруживает, что превратился в огромное мерзкое насекомое” ахахахааха :))

Leave a Reply

%d bloggers like this: