У меня есть следующий класс в коде Java:
public class CHRTreeCreator extends IndexCreator { ... }
Вместо этого CHRTreeCreator
я хочу использовать другую реализацию, которая также расширяет IndexCreator
, но я хочу закодировать ее в JRuby. Проблема в том, что конкретная реализация IndexCreator
выбирается на основе файла конфигурации xml:
<creator>dwe.index.tree.chr.CHRTreeCreator</creator>
код выглядит так:
// className is fetched from XML
Class creatorClass = Class.forName(className);
Constructor constructor = creatorClass.getConstructor(new Class[] { });
creator = (IndexCreator) constructor.newInstance(new Object[] { });
Вопрос в том, можно ли это реализовать на Ruby, вот так:
class MyIndexCreator < IndexCreator
end
и каким-то образом поместите имя класса MyIndexCreator
в файл конфигурации XML. Как в этом случае работает сопоставление модулей и пакетов?
Если невозможно загрузить классы Ruby с помощью Java Class.forName, как мне решить эту проблему?