从 Java 代码中,我将一个 data.frame 推入 Renjin。此数据帧的第一个向量包含作为 ExternalPtr 的本机 Java 对象。一切正常,包括从 R 代码访问这些对象。尽管如此,我注意到使用 print() 函数打印这些对象(出于调试目的)并没有多大帮助。
print( ptr )
正在打印类名和一种哈希码:
<pointer: foo.Class@f0815dc
相似地
print( list-of-ptr )
正在打印:
[[1]] <pointer: foo.Class@3a915df8
[[2]] <pointer: foo.Class@2e4b32f7
无论如何要调用#toString() 或任何其他Java 方法吗?
顺便说一句,我注意到打印整个数据框会引发异常:
Caused by: org.renjin.eval.EvalException: Invalid argument:
format(externalptr, logical, NULL, integer, NULL, integer, logical, logical)
Expected:
format(character, logical(1), any, any, any, integer(1), logical(1), any)
format(LogicalVector, logical(1), any, any, any, integer(1), logical(1), any)
format(DoubleVector, logical(1), any, integer(1), any, integer(1), logical(1), any)
format(IntVector, logical(1), any, integer(1), any, integer(1), logical(1), any)
at org.renjin.primitives.R$primitive$format.doApply(R$primitive$format.java:96)
有没有办法阻止这种情况?