我正在使用 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"
感谢您的帮助!