JavaFunction

Contents

JavaFunction#

template<typename R>
FunctionHandler<JavaFunctionHandler<R>> YR::JavaFunction(const std::string &className, const std::string &functionName)#

为从 C++ 调用 Java 函数创建一个 FunctionHandler

// Java code:
package com.example;

public class YrlibHandler {
public static class MyYRApp {
    public static int add_one(int x) {
            return x + 1;
        }
    }
}

// C++ code:
int main(void) {
    YR::Config conf;
    YR::Init(conf);
    auto ref = YR::JavaFunction<int>("com.example.YrlibHandler$MyYRApp", "add_one").Invoke(1);
    int res = *YR::Get(ref);   // get 2
    return 0;
}
模板参数:
  • R - 函数的返回类型。

参数:
  • className - Java 函数的全限定类名,包括包名。如果该类是一个内部静态类,则使用 $ 连接外部类和内部类。

  • functionName - 要调用的 Java 函数的名称。

返回:

一个可以用来执行 Java 函数的 FunctionHandler 对象。可以通过 JavaFunctionHandler 模板类来访问返回类型。