作者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