我试图在JRuby中使用自定义ClassLoader,因此我的宝石加载的类不会与任何需要我的宝石的项目发生冲突。
为此,我可以很轻松地创建一个新的URLClassLoader
并调用loadClass
来加载我的类,但我得到的是一个未包装的Java Class
,它没有#39}似乎我可以很容易地做很多事情。
我希望能够做到这样的事情:
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
有什么想法吗?我已经在整个JRuby源代码中查找了一个很好的端点,并且我已经尝试过JavaSupport中的许多方法,例如get_proxy_class
,或者同样效果不佳。我可以从我班上得到JavaClass
的实例,但它似乎对我没那么好。