SWIG:使用 %typemap(javabase) 并在 java 中调用超级 class 构造函数

SWIG: using %typemap(javabase) and calling super class constructor in java

在 C++ 中

class A{
..
..
}

class B{
..
..
}

现在 java 我可以生成 A.java、B.java classes。现在我想在 java A 中扩展 B。所以我使用了 %typemap(javabase) A "B"。我可以看到 A 在 A.java

中扩展了 B

现在我在 class B 中没有默认构造函数。因此在生成的 A.java 中出现错误

"implicit super constructor B() is undefined."

如果我手动将 super 添加到 A 的生成构造函数中,一切都会正常。但我不想编辑 A.java。

我可以使用 swig 类型映射为 A 生成调用超级构造函数的构造函数吗?

    %typemap(javabody) A %{
      private long swigCPtr;
      protected boolean swigCMemOwn;

      protected $javaclassname(long cPtr, boolean cMemoryOwn) {
      super(cPtr,cMemoryOwn);
        swigCMemOwn = cMemoryOwn;
        swigCPtr = cPtr;
      }
     %}

解决了问题