我想将键/值对从我的R代码传递给java函数。我的java函数有参数Map<String,String >
。
如何编写调用我的 Java 函数并将值传递给映射的 R 函数?
编辑:
config <- list(Portname="PORT.H.2",MktValue="8000000",WtScheme="Closed")
createPortfolio<-function(config)
{
m <- .jnew("java/util/HashMap")
for( key in names(config)){
m$put( key, config[key])
}
m
得到
Error in FUN(X[[2L]], ...) :
Sorry, parameter type `NA' is ambiguous or not supported.
试试这样的事情怎么样?
m <- .jnew("java/util/HashMap")
m$put( "key", "value" )
我想你的意思
是for (key in names(config)) m$put(key, config[[key]])
因为您想将字符串作为值传递给put
而不是列表。
(考虑在rJava邮件列表stats-rosuda-devel上询问以获得更及时的答案)
对于像我这样遇到此问题并且无法访问 Java 代码的人来说,似乎可以制作一个 HashMap,并将其转换为 Map,如下所示:
m <- .jnew("java/util/HashMap")
m$put( "key", "value" )
map <- .jcast(m, "java/util/Map")