作者gn00742754 (西門貓)
看板java
標題Re: [問題] Getter and Setter
時間Sat Jul 13 13:59:21 2013
感謝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
我知道一定都有對應的解法,
只是這樣不就超級麻煩,
假設用了參照的型別,
都一定要自己特別去實作Getter
※ 編輯: gn00742754 來自: 114.35.107.99 (07/13 14:11)
推 coolcomm:immutable的class就不需要getter/setter啦 07/13 14:18
→ ssccg:在參照型別property封裝的是參照,不是參照的物件 07/13 14:40
→ ssccg:不是跟你想的不同就叫沒意義吧 07/13 14:44
→ coolcomm:為什麼要一直暴露細節? 如果不希望物件內容被改動 乾脆 07/13 14:45
→ coolcomm:封裝成method不就好了 07/13 14:46