假设我有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);
};
};
并尝试生成像
$ swig -java -c++ -module Sample nested.i
结果,除了
Outer::Inner class
之外,出现了3个import和修饰符。环境: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
最佳答案
javaimports
确实向导入部分添加了代码,并且当您包装嵌套类时,它位于单个文件内并共享相同的包含。嵌套类的javaimports
被忽略。
就类文档而言,我个人使用javaclassmodifiers
像这样:
%typemap(javaclassmodifiers) Outer::Inner "
/**
* Outer::Inner class
*/
public class";
对于内部类,它将生成:
static
/**
* Outer::Inner class
*/
public class Inner
并不是很好,它可以编译,但是不会为该类生成javadoc。
关于java - Typemap javaimports不适用于内部C++类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33625816/