3
我正在使用javacode typemap来添加一些附加函数来代替SWIG生成的函数。我想删除details_t_
结构的unsigned char mac[6];
(public short[] getMac()
和public void setMac(short[] value)
)SWIG生成的默认获取器和设置器。我试图使用%ignore details_t_::setMac;
指令,但它不起作用。任何建议作为一个适当的技术来做到这一点?从结构Java类中删除SWIG生成的Getter/Setter
%module Test
%typemap(javacode) struct details_t_ %{
public String getMacAddress() {
return Test.getMacAddressAsString(this); //another API in Test.java
}
%};
%rename (Details) details_t_;
typedef struct details_t_ {
uint16_t code;
char *name;
sockaddr *saddr;
uint32_t saddr_len;
uint8_t flag;
ios_boolean is_child;
unsigned char mac[6];
} details_t;
我的目标是提供Details.java的Java表示,只有具有getter和setter方法没有。我基本上想要使它成为一个不可变的对象,因为这些使用方法只会调用getters来获取数据。所以我只想隐藏二传手,这有可能吗? – c12 2012-03-27 16:08:11
@ c12 - 我添加了一个使其不变的示例 – Flexo 2012-03-27 16:44:01
谢谢你完美工作。 – c12 2012-03-27 17:19:12