JRubyのJavaクラスで静的メソッドを呼び出したい。現在、これを達成するために私は使用します:
class_name = "com.slackworks.naether.util.LogUtil"
clazz = eval(class_name)
clazz.setLogLevel( "debug" )
文字列をクラスに変換するためにevalを使用しなければならないのは不器用なようです。周りを見回しましたが、代わりにJRubyヘルパーを見つけることができませんeval
。
クラスに変換するために文字列が必要な理由は、Rubyランタイムに応じて、JRubyまたはRJBを介したリクエストを処理するラッパーで発生しているためです。RubyランタイムがRJBを使用する場合、呼び出しは次のようになります。
class_name = "com.slackworks.naether.util.LogUtil"
clazz = Rjb::import( class_name )
clazz.setLogLevel( "debug" )