假设我有nested.i
喜欢:
%typemap(javaimports) Outer "
/**
* Outer class
*/"
%typemap(javaimports) Outer::Inner "
/**
* Outer::Inner class
*/"
%javamethodmodifiers Outer::outer_method(int) "
/**
* Outer::outer_method(int)
*/
public";
%javamethodmodifiers Outer::Inner::inner_method(int) "
/**
* Outer::Inner::inner_method(int)
*/
public";
struct Outer {
int outer_method(int);
struct Inner {
int inner_method(int);
};
};
并尝试生成类似
的Java$ swig -java -c++ -module Sample nested.i
结果,除了Outer::Inner class
之外,还出现了3个导入和修改器。
环境:MS Windows 7
$ swig -version
SWIG Version 3.0.7
Compiled with i586-mingw32msvc-g++ [i586-pc-mingw32msvc]
Configured options: +pcre
Please see http://www.swig.org for reporting bugs and further information
答案 0 :(得分:0)
javaimports
确实为导入部分添加了代码,当你包装嵌套类时,它位于单个文件中并共享相同的包含。 <{1}}表示嵌套类被忽略。
个人对于课程文档,我使用javaimports
,如下所示:
javaclassmodifiers
如果是内部类,它会生成:
%typemap(javaclassmodifiers) Outer::Inner "
/**
* Outer::Inner class
*/
public class";
这不是很好,它编译,但不为该类生成javadoc。