我正在尝试将一些java移植到jruby,它使用bean PropertyDescriptor。原始代码是:
new PropertyDescriptor("splitEvaluator", CrossValidationResultProducer.class)
我试图移植到:
PropertyDescriptor.new("splitEvaluator", CrossValidationResultProducer)
然而,我收到错误:
no constructor with arguments matching [class org.jruby.RubyString, class org.jruby.RubyClass] on object #<Java::JavaBeans::PropertyDescriptor:0x86f847> (NameError)
PropertyDescriptor API表示第二个参数应该是Java类。我需要通过什么才能在JRuby中工作?
答案 0 :(得分:0)
我需要使用Java类,而不是Java类的Ruby表示。这很有效。
PropertyDescriptor.new("splitEvaluator", CrossValidationResultProducer.java_class)
答案 1 :(得分:0)
我可以看到一个论点,它是一个错误,它不像你原先预期的那样工作。或者至少JRuby足够聪明,可以将Java类的Ruby类表示转换为Java类参数。
实际上,正如你所发现的,使用#java_class是有效的。