2013-08-20 80 views
2

我需要将jruby函数的hashmap传递给Java函数。我已经尝试过这种方式,没有运气。将Jruby HashMap转换为Java HashMap

def rubyfunction 
    clazz = com.package.clazz 
    params = java.util.HashMap.new({:ID => 1})  
    clazz.javafunction(params) 
end 


public class clazz{ 
    public void javafunction(HashMap<String, Object> params){ 
     params.get("ID") //Gives back null 
    } 
} 

有没有适当的方法将jruby hashmap转换为java hashmap?

+0

你是什么意思“没有运气”吗?有错误吗? –

+0

当试图通过“ID”键获取值时,它会返回空值 –

回答

1

找了几个小时后,我遇到了这个链接https://kenai.com/projects/jruby/pages/CallingJavaFromJRuby

从我修改了代码,现在按预期工作

def rubyfunction 
    clazz = com.package.clazz 
    params = java.util.HashMap.new() 
    value = 1.to_java Java::int 
    params.put("ID", value) 
    clazz.javafunction(params) 
end 
+0

https://github.com/jruby/jruby/wiki/CallingJavaFromJRuby – slf