[問題] 同一物件不同值

看板java作者 (俠)時間10年前 (2014/09/30 16:01), 10年前編輯推噓0(007)
留言7則, 2人參與, 最新討論串1/1
不太確定標題怎麼下比較好 大概狀況是 今天有三個物件 public class aa { ArrayList<bb> bArraylist . . } public bb { ArrayList<cc> cArraylist String name; boolean setting; . . } public cc { String name; boolean setting ; . . } 我會需要new 很多個aa物件 但我希望保持每個new出來的aa物件底下的 bArraylist,cArraylist資料都同步 bb cc 的name也是同步 只保留bb cc 的setting各自有各自的設定 現在的想法是creat一個獨立的main aa 當對這個main aa物件做修改的時候 其他new出來的物件再做同樣的事情 但是變成在初始化的時候,其他new出來的物件必須先clone main aa一次 我想問有其他更好的做法嗎? 又我在做deep clone的時候 發現只有bb會是獨立的記憶體,但是cc又指向同樣的位子了 是不是我連cc 也要implements Cloneable 然後一個一個加到bb 再加回aa呢? 不好意思這問題我覺得有點笨 但我想了幾天了實在想不到比較好的方法 還希望各位先進可以提供一些方向 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.136.206.17 ※ 文章網址: http://www.ptt.cc/bbs/java/M.1412064107.A.B28.html ※ 編輯: erttyy8821 (223.136.206.17), 09/30/2014 16:02:22

09/30 16:22, , 1F
static?
09/30 16:22, 1F

09/30 16:23, , 2F
其實不太搞得清楚你說的同步是什麼意思
09/30 16:23, 2F
同步的意思 假設今天new 了三個aa: aa1,aa2,aa3 我在aa1.bArraylist add一個物件 希望aa2,aa3也可以同時add一個物件 又或者我修改 aa1.bArraylist.get(0).name aa2,aa3同時也可以修改 但是如果是 aa1.bArraylist.get(0).setting aa2,aa3 並不會改 我有想過用static 但是這樣的話setting不是也會一起被改嗎? 所以我create一個 static main aa做為參考 讓其他new出來的aa先copy這份,在各自修改setting 但總覺得這樣copy很浪費記憶體 才想問有沒有其他更好的方式? ※ 編輯: erttyy8821 (223.136.206.17), 09/30/2014 16:32:27

09/30 17:01, , 3F
prototye~請參考設計樣式中的範本建立工廠
09/30 17:01, 3F
感謝!!!! 這就是我要的 ※ 編輯: erttyy8821 (203.74.126.1), 09/30/2014 20:17:14

09/30 23:59, , 4F
就只有那個 array list 是 static 呀,效果就是你
09/30 23:59, 4F

10/01 00:00, , 5F
所描述那樣。prototype 並不會做到你想要的效果吧
10/01 00:00, 5F

10/01 00:00, , 6F
除非我理解錯你的解釋了
10/01 00:00, 6F

10/01 00:01, , 7F
oh 看漏了 setting 不會改一句
10/01 00:01, 7F
文章代碼(AID): #1KAcDhie (java)
文章代碼(AID): #1KAcDhie (java)