作者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)
2F:推 coolcomm:immutable的class就不需要getter/setter啦 07/13 14:18
3F:→ ssccg:在参照型别property封装的是参照,不是参照的物件 07/13 14:40
4F:→ ssccg:不是跟你想的不同就叫没意义吧 07/13 14:44
5F:→ coolcomm:为什麽要一直暴露细节? 如果不希望物件内容被改动 乾脆 07/13 14:45
6F:→ coolcomm:封装成method不就好了 07/13 14:46