get和set方法的規範為什麼不直接加屬性名?
作者:由 蘿蔔 發表于 體育時間:2019-03-06
瀉藥
對不起
我不寫java
2333333
……知乎這個編輯器是不是有毒
這個,你得看更多的語言。比如c#的寫法,並沒有強調一定要帶set/get單詞的方法。比如oc,直接不需要申明set/get方法。這個是Java這麼的做法,不表示其他語言這麼做。
java 的 getter 和 setter 不是語言特性,是框架要求,所以有 bug 很正常。javascript 中 getter 和 setter 是語言特性,就不會有這些問題,至於 java 為什麼不學 js 那樣,估計是歷史遺留問題
個人理解,java程式碼有java程式碼的規範,我想更多的是為了通俗易懂吧,程式碼量龐大的時候,無論是重新開啟專案,還是其他人接手專案,都能上手操作。
當年在設計Java時砍掉了很多Java設計者當年認為沒有必要的語言特性,只保留面向物件的精髓。property就是一個,因為accessor可以用方法實現。這直接造成POJO型別十分臃腫。
至於accessor的規範,其實也都是約定俗成的東西被固定了下來。