Re: [問題] Getter and Setter

看板java作者 (西門貓)時間11年前 (2013/07/13 13:59), 編輯推噓1(105)
留言6則, 3人參與, 最新討論串4/5 (看更多)
感謝darkk6精美的圖表跟程式碼^___^ 但是我最大的疑惑是, 在Java這樣的特性下, Getter and Setter只有在基本型別下才有意義不是嗎? 假設我現在有Room跟User兩個Bean, Room存放了UserList, 假設我的Room只提供Getter, 那一般的實作不是通常是這樣 List<User> userList; public List<User> getUserList(){ return userList; } 我的本意是不想讓外部Class可以修改userList, 可是如果我的Getter是這樣實作, 外部仍然可以對這個userList做操作, 當然使用以下寫法就可以解決, public List<User> getUserList(){ retunr new ArrayList<User>(userList); } 難道遇到參照類型的物件, 我都只能這樣子實作嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.35.107.99

07/13 14:02, , 1F
有 unmodifiable list 這種東西呀 http://goo.gl/ffXtQ
07/13 14:02, 1F
我知道一定都有對應的解法, 只是這樣不就超級麻煩, 假設用了參照的型別, 都一定要自己特別去實作Getter ※ 編輯: gn00742754 來自: 114.35.107.99 (07/13 14:11)

07/13 14:18, , 2F
immutable的class就不需要getter/setter啦
07/13 14:18, 2F

07/13 14:40, , 3F
在參照型別property封裝的是參照,不是參照的物件
07/13 14:40, 3F

07/13 14:44, , 4F
不是跟你想的不同就叫沒意義吧
07/13 14:44, 4F

07/13 14:45, , 5F
為什麼要一直暴露細節? 如果不希望物件內容被改動 乾脆
07/13 14:45, 5F

07/13 14:46, , 6F
封裝成method不就好了
07/13 14:46, 6F
文章代碼(AID): #1HuEoyO3 (java)
文章代碼(AID): #1HuEoyO3 (java)