Java 不支援union, 請問有什麼較好代替方法嗎? |
尚未結案
|
Mummy
一般會員 發表:11 回覆:9 積分:4 註冊:2004-02-20 發送簡訊給我 |
|
neoart
版主 發表:22 回覆:582 積分:425 註冊:2003-05-09 發送簡訊給我 |
這就要用序列化來做了
參考:http://java.sun.com/docs/books/tutorial/essential/io/serializing.html
class yourClass implements java.io.Serializable{ int ... long ... Object ... } 放送端: yourClass Oy=.... OutputStream os= ....//看你要用什麼來做輸出管道--socket/rmi/File... ObjectOutputStream s = new ObjectOutputStream(os); os.writeObject(Oy); os.flush(); os.close(); 接收端: InputStream is=..... ObjectInputStream ois = new ObjectInputStream(is); yourClass obj=(yourClass)ois.readObject(); ois.close();當然啦,兩方要有你所定義的class才可以轉換. Dear Mummy,可以說一下你是要做什麼東西嗎?人家很好奇說. |
Mummy
一般會員 發表:11 回覆:9 積分:4 註冊:2004-02-20 發送簡訊給我 |
Thank you 想用在網路影像收送上, 應需訂很多command packet, 而每個Packet固定64Bytes, 所以會利用union來設定及讀取Command Packet data, 方便寫程式,
否則每次 read/write command packet data 還需查閱?? ex:
typedef union
{
struct
{
U32 dwSig; // 0-3 :
U16 wLen; // 4-5 :
U16 wCmdSN; // 6-7 :
U16 dwRev; // 8-9 :
U16 wOPcode; // 10-11 : union // Union : 12 -63
{
U8 bParam[52]; // 52Bytes
URESULT_ACK Ack; // 52Bytes
UREQ_CONDEVICE ReqCon; // 52Bytes
UACK_CONDEVICE AckCon; // 52Bytes .
.
}OP; } CMD;
U8 bCmdData[CMD_LEN];
} UCmdPacket;
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |