人人网:打印“externalptr”

时间:2017-09-06 12:20:41

标签: renjin

从Java代码中我正在向Renjin推送一个data.frame。此数据框的fisrt向量包含本机Java对象作为ExternalPtr。一切正常,包括从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)

无论如何都要阻止它?

0 个答案:

没有答案