How to pass java object reference from java side to c++ side?

125 Views Asked by At

I want to use JNI to pass java reference to c++ side,then get the object back in java, but I understand java not like c++ that can use reference. Also I want to prevent using external storing variable like Vector to hold the created object. I imagine it has a reference type "MyPointer" like this:

steps

  1. create object from java side

  2. pass reference from java side to c++ side, which "MyPointer" is the object reference which can get back the object at java side

  3. get back the object at java side using "MyPointer"

code

public class MyClass{
    static{
        System.loadLibrary("MyClass");
    }
    public String name;
    public static void backToJavaSide(MyPointer obj){
        MyClass myClass=(MyPointer)obj;
        System.out.println(obj.name);
    }

    public static native void toCppSide(MyPointer obj);
    public static void main(String[] args){
        MyClass m1=new MyClass();
        m1.name="abc";
        toCppSide(m1);

        MyClass m2=new MyClass();
        m2.name="def";
        toCppSide(m2);
    }
}

output

abc
def

Is there any coding style that can simulate "MyPointer" that can pass java object between java and c++?

0

There are 0 best solutions below