我在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 ]