我正在使用SWIG制作一个C++库的Java包装器(关于Json(de)序列化)以在Android上使用它.我在C++中定义了一个抽象类,表示可以(反)序列化的对象:
class IJsonSerializable {
public:
virtual void serialize(Value &root) = 0;
virtual void deserialize(Value &root) = 0;
};
Run Code Online (Sandbox Code Playgroud)
现在,我正在尝试从这个类生成一个Java接口.这是我的SWIG界面:
%module JsonSerializable
%{
#include "JsonSerializable.hpp"
%}
%import "JsonValue.i"
class IJsonSerializable {
public:
virtual void serialize(Value &root) = 0;
virtual void deserialize(Value &root) = 0;
};
Run Code Online (Sandbox Code Playgroud)
但是生成的Java代码(显然,因为我无法找到如何告诉SWIG这是一个接口)一个简单的类,有两个方法和一个默认的构造函数/析构函数:
public class IJsonSerializable {
private long swigCPtr;
protected boolean swigCMemOwn;
public IJsonSerializable(long cPtr, boolean cMemoryOwn) {
swigCMemOwn = cMemoryOwn;
swigCPtr = cPtr;
}
public static long getCPtr(IJsonSerializable obj) {
return (obj == null) ? 0 …
Run Code Online (Sandbox Code Playgroud)