我在jruby项目中使用了一个Java类,在ruby中,可以通过send方法为对象设置一个值。我在jruby中做同样的事情,但改用java_send方法。但是,当我尝试使用它时,出现以下错误TypeError: can't convert Java::JavaIo::File into Array from org/jruby/java/proxies/JavaProxy.java:321:in 'java_send'

我有一个Java实例,需要通过符号调用对象。下面是我在代码中正在做的事情:

OUTPUT_FILES = [:make, :model]

javaArgs = javaArgs.new
OUTPUT_FILES.each do |filename|
   file = java.io.File.new(path, "#{filename.to_s.underscore}.csv")
   file.createNewFile
   javaArgs.java_send(filename, file)
end


并且只是为了确保我何时执行javaArgs.make = file时不会出现任何问题。

最佳答案

java_send期望其参数作为数组传递:javaArgs.java_send filename, [ file ]

10-07 17:20