今天在刷掘金的時候,看到一篇文章 Java Getter/Setter “防坑指南” 來了 裏面有說道:
通過使用 Getter/Setter 方法,變量的訪問(get)和更新(set)將變得可控。考慮以下 Setter 方法的代碼
public void setName(String name) {
if (name == null || "".equals(name)) {
throw new IllegalArgumentException();
}
this.name = name;
}
感覺有點不對勁啊,因爲之前的公司,都是禁止在set/get方法裏添加任何邏輯的,實體類就是單純的實體類,不做任何的邏輯處理,任何。
既然文章的論據不充分,那麼java裏到底是爲何需要set/get方法呢?而且還已經成爲一種javaer的常識了
網上有好幾個說法,有的說是爲了體現java語言的封裝特性、有的說是爲了安全,有的說是爲了符合規範,都說的不是很到位。
其實,使用set/get就是爲了對變量的控制
假如有一個屬性,可以提供給外部查看,但是禁止修改,這樣只需要提供get(),不提供set()即可。如果使用對象.屬性的方式,是無法做到的。另外,spring框架裏,實體類都是有生成set/get的,所以這也形成了一種規範了