[問題] Serialize class然後傳輸的問題
菜逼八問個問題
1. 我先在 package 1 做一個
public class test003t implements Serializable{
private static final long serialVersionUID = -4844268319117569860L;
int b = 10;
}
2. 在 package 2 複製一個一模一樣的test003t
3. 並把package 2 的 test003t 轉成 byte[]
傳給 package 1 的main method
在main method 把byte[]轉回來成為object
結果下面這行出錯了
test003t temp = (test003t) object1;
java.lang.ClassCastException: p003.test003t cannot be cast to p002.test003t
at p002.test001objectdencode.main(test001objectdencode.java:51)
4. 我去把package 1跟package 2 裡面的test003t都轉成byte[]
內容全部印出來 是完全一樣的
既然如此為什麼不能用?
怕我敘述能力太差..
總之就是我在兩個不同的package1 package2 都做出同名同內容的class
接著把兩個class當成object轉成byte[] (印出來的值都是一樣的
在package1裡面要把package2傳過來的byte[]轉回class就出錯
但是如果是轉同package的就不會錯
為什麼...不是內容都一樣嗎?
====抱歉犯蠢了=======
後來仔細比對有一個數字不一樣 所以認定的package name不一樣就不行
那要怎麼做才能一樣呢?
--
驟雨初歇村似畫 濛濛夕霧滿秋山
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.38.253.21
※ 文章網址: https://www.ptt.cc/bbs/java/M.1444895823.A.ED3.html
※ 編輯: aynmeow (114.38.253.21), 10/15/2015 16:15:52
推
10/15 16:46, , 1F
10/15 16:46, 1F
→
10/15 16:46, , 2F
10/15 16:46, 2F
我是希望如果有人從遠端(像是經過socket)傳給我一個class
我能夠在本地使用那個class
所以我的想法就是把class序列化 >> object轉byte[] >> 傳出去
>> 接收 >> byte[]轉object >> object指定為某class來使用
→
10/15 17:14, , 3F
10/15 17:14, 3F
→
10/15 17:15, , 4F
10/15 17:15, 4F
因為要模擬從遠端傳輸...
最後找到method.invoke的寫法 大概可以解決了感恩
※ 編輯: aynmeow (114.38.253.21), 10/15/2015 17:28:18
→
10/15 18:02, , 5F
10/15 18:02, 5F
推
10/15 20:07, , 6F
10/15 20:07, 6F
推
10/15 23:57, , 7F
10/15 23:57, 7F
推
10/16 01:55, , 8F
10/16 01:55, 8F
→
10/16 01:55, , 9F
10/16 01:55, 9F
→
10/16 05:41, , 10F
10/16 05:41, 10F
→
10/16 05:43, , 11F
10/16 05:43, 11F
java 近期熱門文章
PTT數位生活區 即時熱門文章