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