У меня есть этот фрагмент кода Java:Если класс существует, вызов конструктора
try {
Class.forName(command);
} catch (ClassNotFoundException ex) {
}
, где «команда» является строкой, которая вводится вручную во время выполнения. Ради вопроса, допустим, пользователь вводит «Foo».
Он проверяет, существует ли класс с именем Foo. То, что я хочу сделать после проверки, - это вызов метода из Foo.
Foo.execute();
Как это сделать, не делая специальный случай «если» для каждого из моих классов? Есть ли способ использовать что-то вроде псевдонима ($ command) .execute(), где $ command будет (в данном случае) моим Foo Class?
HTTP: // StackOverflow.com/questions/2467544/invoking-a-static-method-using-reflection –
Если вы хотите ссылаться на классы, которые вы можете вводить как единый объект, я бы сказал, что используйте суперкласс. Таким образом, каждый класс, который может быть введен, расширяет или реализует InputClazz.class или что-то. –
Привет, Пожалуйста, взгляните на команду Pattern. Просто сохраните свои команды в HashMap. : http://www.javaworld.com/article/2077569/core-java/java-tip-68--learn-how-to-implement-the-command-pattern-in-java.html –
Marcinek