我想在 JRuby 中调用 Java 类的静态方法。目前为了实现这一点,我使用:
class_name = "com.slackworks.naether.util.LogUtil"
clazz = eval(class_name)
clazz.setLogLevel( "debug" )
必须使用 eval 将 String 转换为 Class 似乎很笨拙。我环顾四周,但找不到一个 JRuby 助手来代替eval
.
我需要将 String 转换为 Class 的原因是,这发生在处理 JRuby 或 RJB 请求的包装器中,具体取决于 Ruby 运行时。如果 Ruby 运行时使用 RJB,则调用类似于:
class_name = "com.slackworks.naether.util.LogUtil"
clazz = Rjb::import( class_name )
clazz.setLogLevel( "debug" )