如何将java对象引用从java端传递给c ++端?

时间:2015-06-08 01:59:03

标签: java c++ java-native-interface

我想使用JNI将java引用传递给c ++端,然后在java中获取对象,但我理解java不像c ++那样可以使用引用。另外我想防止使用像Vector这样的外部存储变量来保存创建的对象。我想它有一个像这样的引用类型“MyPointer”:

步骤

  1. 从java端创建对象

  2. 将引用从java端传递给c ++端,“MyPointer”是可以在java端返回对象的对象引用

  3. 使用“MyPointer”

  4. 返回java端的对象

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

    输出

    abc
    def
    

    是否有任何可以模拟“MyPointer”的编码风格可以在java和c ++之间传递java对象?

0 个答案:

没有答案