如何将SWIG生成的Java接口设置为包内可见(非public)?
解决方案
要将SWIG生成的常量接口改为包内可见,只需在SWIG接口文件(.i文件)中添加对应的编译指示即可:
修改接口的访问修饰符
添加以下代码到你的.i文件中,移除常量接口的public修饰符:%pragma(java) constantinterfacemodifiers=""(可选)修改常量字段的访问修饰符
如果同时需要将接口内的常量字段也改为包内可见(去掉public),再添加一行:%pragma(java) constantfieldmodifiers=""
添加后重新生成Java包装器,得到的TestConstants接口会变为:
package abc; interface TestConstants { final static int YES = TestJNI.YES_get(); final static int NO = TestJNI.NO_get(); final static int ENABLED = TestJNI.ENABLED_get(); final static int DISABLED = TestJNI.DISABLED_get(); }
此时接口和常量仅对abc包内的类可见。
内容的提问来源于stack exchange,提问作者user18371559
相关产品推荐
相关产品推荐

