JavaInstanceClass FactoryCreate

Contents

JavaInstanceClass FactoryCreate#

static inline JavaInstanceClass YR::JavaInstanceClass::FactoryCreate(const std::string &className)#

为调用 Java 函数创建一个 JavaInstanceClass 对象。

// Java code:
package io.yuanrong.demo;

// A regular Java class.
public class Counter {
    private int value = 0;

    public int increment() {
            this.value += 1;
            return this.value;
        }
}

// C++ code:
int main(void) {
    YR::Config conf;
    YR::Init(conf);
    auto javaInstance = YR::JavaInstanceClass::FactoryCreate("io.yuanrong.demo.Counter");
    auto r1 = YR::Instance(javaInstance).Invoke();
    auto r2 = r1.JavaFunction<int>("increment").Invoke(1);
    auto res = *YR::Get(r2);

    std::cout << "PlusOneWithJavaClass with result=" << res << std::endl;
    return res;
}
参数:
  • className - Java 函数的全限定类名,包括包名。如果该类是一个内部静态类,则使用 $ 连接外部类和内部类。

返回:

一个携带创建 Java 函数类实例所需信息的 JavaInstanceClass 对象。该对象可以作为参数传递给 YR::Instance