You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将SWIG生成的Java接口设置为包内可见(非public)?

解决方案

要将SWIG生成的常量接口改为包内可见,只需在SWIG接口文件(.i文件)中添加对应的编译指示即可:

  1. 修改接口的访问修饰符
    添加以下代码到你的.i文件中,移除常量接口的public修饰符:

    %pragma(java) constantinterfacemodifiers=""
    
  2. (可选)修改常量字段的访问修饰符
    如果同时需要将接口内的常量字段也改为包内可见(去掉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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 14:19:51