看板 java 關於我們 聯絡資訊
借標題用用^^" 如果想要複製物件 就是讓兩個變數指向不同空間,但內容都一樣 爬文發現好像要 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
james732:為什麼會想要複製 Label 呢? 02/15 17:14
darkgerm:呃…就是想複製…例如兩個Label只有位置不同 02/15 17:21
darkgerm:那用複製的比較快吧 //推文竟然要隔1分鐘0.0 02/15 17:23
darkk6:自建一個 Class 包裝起來 override clone 為 public ? 02/15 17:38
kogrs:GUI物件盡量不要clone 裡面有很多屬性 是我們碰不到的 02/15 17:59
darkgerm:所以我應該重寫每一行?才能做出一樣的物件嗎? 02/15 20:00
james732:寫個專用的method來複製你需要的屬性就好 02/15 20:14
PttTime:public UrType clone() {return (UrType)super.clone();} 02/15 21:08
willieliao:GUI Component盡量不要用clone/serialization,有許多 02/16 02:49
willieliao:的listener會不工作... 02/16 02:51
darkgerm:感覺clone()不是很好用的樣子…除非自己寫的class 02/16 22:38
kogrs:clone本來就是讓你去實作自己能掌控的class 02/18 08:59
darkgerm:恩恩~~謝謝大家 02/18 10:07
tomap41017:又學到GUI一課!!讚哦 02/19 21:58