1

我正在尝试在 JRuby 中使用自定义 ClassLoader,因此我的 gem 加载的类不会与任何需要我的 gem 的项目冲突。

为此,我可以很容易地创建一个新的URLClassLoader并调用loadClass来加载我的类,但我得到的是一个未包装的 Java Class,我似乎不能轻松地做很多事情。

我希望能够做这样的事情:

clazz = java_class_loader.loadClass 'org.foo.bar.Class'
wrapped = JRuby.wrap_class clazz

wrapped.static_method 1, 2, 3 # call a static method
wrapped::CONSTANT             # get a constant

有任何想法吗?我已经在 J​​Ruby 源代码中查看了一个好的端点,并且我已经尝试了 JavaSupport 中的许多方法,get_proxy_class或者同样没有好的效果。我可以从我的班级获得和实例,JavaClass但这似乎对我没有多大好处。

4

0 回答 0