使用 SWIG 包装器生成从 C++ 到 Java 的接口和模板继承

时间:2021-04-01 15:05:56

标签: java c++ swig

我正在使用 SWIG 将 C++ 代码包装到 Java。 我定义了一个继承自接口和类模板的类。 我只需要从接口继承类型,派生类不实现虚方法。

界面下方:

class Interface {
public:
  virtual ~Interface() = default;
};

类模板:

template <typename T>
class ClassTemplate {
  
  void Foo(T& type) {}

};

派生类:

class DerivedClass : public ClassTemplate<Type>, public Interface {
 public:
  DerivedClass();
  virtual ~DerivedClass();
}

我知道 Java 不支持多重继承,但我想知道是否有一些解决方法可以在 Java 中生成此代码以便拥有类型为 Interface 的 DerivedClass 并访问类模板方法。

这是我的 SWIG 文件:

%{
  #incldue "class_template.h"
  #include "interface.h"
  #include "derived_class.h"
%}

%include "class_template.h"
%template(MyTemplate) ClassTemplate < Type >;

%feature("director") Interface;
%include "interface.h"

%include "derived_class.h"

感谢您的帮助!

0 个答案:

没有答案