亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Lombok 或 Java 'var' 有用的用例

Lombok 或 Java 'var' 有用的用例

侃侃無極 2023-05-17 15:47:37
var當您瀏覽代碼并調查乍一看不清楚的代碼時,它并不是非常有用。當開發人員使用非自我描述的方法名稱時,您必須花一些時間來了解什么是變量的真實類型。如果你使用 Lombok,var你將與Lombok緊密耦合,所以我不會在我的代碼中經常使用它。在 Java 中使用有哪些有用的用例var?
查看完整描述

1 回答

?
嗶嗶one

TA貢獻1854條經驗 獲得超8個贊

贊成的論據var

  • var需要更少的打字。它比 let's say 更短,有時更容易閱讀Map<Integer, ArrayList<String>>

  • var如果方法調用的返回類型發生變化,則需要較少的代碼更改。您只需要更改方法調用,而不是每個使用它的地方。

  • var鼓勵為變量起一個更具描述性的名稱。var customer = new Customer();即而不是var c = new Customer();。

  • 當您在不同類型的另一個變量下有多個變量時,如果名稱全部為var,則所有名稱都會排成一行,而類型本身則不是這種情況(除非類型巧合地具有相同的長度)。

反對意見var

  • var掩蓋了實際的變量類型。如果初始化器沒有返回明確定義的類型,您可能無法分辨變量的類型。

  • 使用var是懶惰的。雖然var肯定比 更容易輸入Map<Integer, ArrayList<String>>,但如果變量名稱命名不當,您必須進行更深入的搜索才能知道它指的是什么。

  • var使得更難知道底層變量的類型實際上是什么。

  • 您不能var在所有情況下都使用。喜歡:

    • var i = 1, j = 2;var-一次只接受一個變量。

    • var arr = {1, 2, 3};- 必須顯式聲明數組。

    • var f = a -> a + " ";- 它無法確定此 lambda 函數的類型。

    • var f = String::replace;- 不能使用方法引用,因為它們本身沒有類型。

哦,還有另一個很大的優勢:代碼高爾夫var更短(創建一個程序/函數來完成特定任務/挑戰,盡可能少的字節)。:) 這可能是我不介意添加它的主要原因,因為我經常使用 Java(以及 .NET C#、05AB1E 和 Whitespace)編寫代碼。

相關:Java 7 的菱形運算符。List<String> names = new ArrayList<>();對比List<String> names = new ArrayList<String>();_

就個人而言,我仍然使用寫出的類型而不是var,除了打代碼。但也許我只需要在更頻繁地使用它之前再習慣它一點。為了可讀性,并且無需挖掘就可以更清楚,更容易地看到類型,我var根本不使用。至于 Java 7 的菱形運算符,我只在字段后直接實例化時使用它,但在其他地方實例化時不會使用它(即我會使用 ,但不會使用List<String> names = new ArrayList<>();List<String> names; /* ... some code here ...*/ names = new ArrayList<>();。
不過,總的來說,這一切都歸結為偏好。


查看完整回答
反對 回復 2023-05-17
  • 1 回答
  • 0 關注
  • 187 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號