Основной метод Cal из другого класса по String - PullRequest
0 голосов
/ 07 мая 2020

Я создаю класс для запуска основных методов нескольких других классов, построенных моим коллегой. Это работает путем сканирования папки на наличие файлов и запуска всех необходимых основных методов на основе имен файлов. У меня был большой кусок операторов if для запуска основных методов классов, соответствующих именам файлов.

Типичный оператор if имел вид:

if (f.contains("FileX")) {
                Files.copy(Paths.get("D:\\" + yearmonth.format(date) + "\\" + dateFormat.format(date) + "\\" + f),
                        Paths.get("C:/eclipse-workspace/javarepository/rapporting/" + f),
                        StandardCopyOption.REPLACE_EXISTING);
                String[] pasStr = new String[] { f };
                FileX.main(pasStr);
}

FileX было именем строки, соответствующий класс имеет то же имя. Я хотел бы пропустить все операторы If и просто сделать это так (это не работает):

                Files.copy(Paths.get("D:\\" + yearmonth.format(date) + "\\" + dateFormat.format(date) + "\\" + f),
                        Paths.get("C:/eclipse-workspace/javarepository/rapporting/" + f),
                        StandardCopyOption.REPLACE_EXISTING);
                String[] pasStr = new String[] { f };
                FileX.main(pasStr);
}

Проблема, конечно, в том, что fileX является строковым значением. Поэтому я пробовал все, что мог найти, например
Class cls = Class.forName("FileX"); cls.main(pasStr);

, но не могу найти решение, которое работает. Кто-нибудь знает, как заставить это работать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...