作者darkgerm (黑駿)
看板java
標題Re: [問題] 物件複製問題
時間Tue Feb 15 17:07:46 2011
借標題用用^^"
如果想要複製物件
就是讓兩個變數指向不同空間,但內容都一樣
爬文發現好像要 implement Cloneable
然後 override clone()
可是今天我想複製的,是 java 內建的 class
我寫了下面這樣:
Label lab1 =
new Label();
//some setting of lab1
Label lab2;
lab2 = lab1.clone();
結果跑出下面這些訊息:
temp.java:18: clone() has protected access in java.lang.Object
lab2 = lab1.clone();
^
temp.java:18: incompatible types
found : java.lang.Object
required: java.awt.Label
lab2 = lab1.clone();
^
去查了發現… Object clone() 竟然是 protected,這樣要怎麼用啊??
而且 clone() 回傳值看起來是 Object
這樣也沒辦法用 Label 指向他耶…
到底應該怎麼複製??
--
光明 的背後 是 黑暗
黑暗 的背後 還是 黑暗
由此可知 黑暗 > 光明 Q.E.D.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 124.8.140.244
1F:→ james732:為什麼會想要複製 Label 呢? 02/15 17:14
2F:→ darkgerm:呃…就是想複製…例如兩個Label只有位置不同 02/15 17:21
3F:→ darkgerm:那用複製的比較快吧 //推文竟然要隔1分鐘0.0 02/15 17:23
4F:→ darkk6:自建一個 Class 包裝起來 override clone 為 public ? 02/15 17:38
5F:→ kogrs:GUI物件盡量不要clone 裡面有很多屬性 是我們碰不到的 02/15 17:59
6F:→ darkgerm:所以我應該重寫每一行?才能做出一樣的物件嗎? 02/15 20:00
7F:→ james732:寫個專用的method來複製你需要的屬性就好 02/15 20:14
8F:→ PttTime:public UrType clone() {return (UrType)super.clone();} 02/15 21:08
9F:→ willieliao:GUI Component盡量不要用clone/serialization,有許多 02/16 02:49
10F:→ willieliao:的listener會不工作... 02/16 02:51
11F:→ darkgerm:感覺clone()不是很好用的樣子…除非自己寫的class 02/16 22:38
12F:→ kogrs:clone本來就是讓你去實作自己能掌控的class 02/18 08:59
13F:→ darkgerm:恩恩~~謝謝大家 02/18 10:07
14F:推 tomap41017:又學到GUI一課!!讚哦 02/19 21:58