gpt4 book ai didi

rJava - .jcall 调用问题 : method with signature not found

转载 作者:行者123 更新时间:2023-12-04 14:26:53 27 4
gpt4 key购买 nike

我试图用 rJava 调用 java 类中的一个方法几天,但我还没有弄清楚我做错了什么。也许这里有人会给我一些线索。

情况如下:

  • 我加载库并初始化一个对象(工作正常):
    library(rJava)
    .jinit('C:/javatemp/worker.jar')
    jobject <- .jnew("worker.concrete")
  • 我列出了方法,我得到了很好的结果:
    .jmethods(jobject)
    > [1] "public java.util.List worker.concrete.lookup(java.lang.CharSequence)"
  • 我正在准备也可以正常工作的输入结构:
    word <- .jnew("java/lang/String", "a word")
    input = .jcast(word, "java/lang/CharSequence", check = TRUE)
  • 但是,当我尝试执行该方法时,我收到一个错误,即此类方法不存在...
    out = .jcall(jobject,"Ljava/util/List","lookup",input)
    > Error in .jcall(jobject, "Ljava/util/List", "lookup", input) :
    method lookup with signature (Ljava/lang/CharSequence;)Ljava/util/List not found

  • 有谁知道如何调用这种方法?

    最佳答案

    很抱歉回答一个老问题,但这也困扰了我一段时间。答案是:;
    非原始返回类型的类型规范格式为 Lpackage/subpackage/Type; - 它必须以分号结尾。所以在上面的例子中,你需要:

    out = .jcall(jobject,"Ljava/util/List;","lookup",input)

    关于rJava - .jcall 调用问题 : method with signature not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29066453/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com