小编Mar*_*k K的帖子

通过Class.forName从Java加载JRuby类

我在Java代码中有以下类:

public class CHRTreeCreator extends IndexCreator { ... }
Run Code Online (Sandbox Code Playgroud)

相反,CHRTreeCreator我想使用也扩展的不同实现IndexCreator,但我想在JRuby中编写代码.问题是,IndexCreator基于xml配置文件选择了具体实现:

<creator>dwe.index.tree.chr.CHRTreeCreator</creator>
Run Code Online (Sandbox Code Playgroud)

代码如下所示:

// className is fetched from XML
Class creatorClass = Class.forName(className);
Constructor constructor = creatorClass.getConstructor(new Class[] {  });
creator = (IndexCreator) constructor.newInstance(new Object[] { });
Run Code Online (Sandbox Code Playgroud)

问题是,是否可以在Ruby中实现它,如下所示:

class MyIndexCreator < IndexCreator
end
Run Code Online (Sandbox Code Playgroud)

并以某种方式将MyIndexCreator类名放入XML配置文件中.在这种情况下,模块 - 包映射如何工作?

如果不能通过Java的Class.forName加载Ruby类,我该如何解决这个问题?

java jruby classloader

2
推荐指数
1
解决办法
989
查看次数

标签 统计

classloader ×1

java ×1

jruby ×1