Local Variable Type Inference
(mail.openjdk.java.net)
這裡有相關的問卷: Local Variable Type Inference for Java1
看來有幾種選項,我個人是比較喜歡 var/val 啦,就像 Scala/Kotlin 一樣
IngramChen
積分 0
我覺得 final 比較好,因為在 java 裡比較好認。
var barList = new ArrayList<String>();
final fooList = new ArrayList<String>();
var/val 雖然有很多優點,短,而且一樣長,但這兩個字實在太像了,可讀性有點差。當然可以靠 IDE 上不同色來解決啦…
其實想想也不用那麼複雜
var barList = new ArrayList<String>();
final var fooList = new ArrayList<String>();
這樣跟
ArrayList<String> barList = new ArrayList<>();
final ArrayList<String> fooList = new ArrayList<>();
一致不也挺好?
var就特別拿來用在type inference, final就來決定是不是可被assign
IngramChen
積分 0
因為 這次是個 reboot 的機會,所以會想要一次到位把它搞定吧。參照別的語言 val/var/let 都用的很爽,我想 Java 也可以選擇比較簡潔的寫法。
我猜最後定案時大概是 val/var。哈
IngramChen
積分 0
在 Dart 裡,也是有 var
的用法 (跟 js 一樣),也是到處都能寫。
不過 Dart 經過二年成熟後,他們最後的 code style 建議,你只該在 local 變數上使用 var
,其他 instance field, method parameter 上都不該用。
Java 則是直接限制 var
只能在 local 變數上使用,這算是第一步就走對了,省得有人到處亂寫,影響程式可讀性。
haocheng
積分 0
有道理,var/val 雖然可以少打幾個字,不過可讀性也稍微差了一點