JavaInstanceClass FactoryCreate

Contents

JavaInstanceClass FactoryCreate#

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

Create a JavaInstanceClass object for invoking Java functions.

// 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;
}

Parameters:

className – The fully qualified class name of the Java class, including package name. If the class is an inner static class, use ‘$’ to connect the outer class and inner class.

Returns:

A JavaInstanceClass object that carries the necessary information to create a Java function class instance. This object can be passed to YR::Instance as a parameter.