第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

Lombok 或 Java 'var' 有用的用例

Lombok 或 Java 'var' 有用的用例

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

1 回答

?
嗶嗶one

TA貢獻1854條經(jīng)驗 獲得超8個贊

贊成的論據(jù)var

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

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

  • 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};- 必須顯式聲明數(shù)組。

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

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

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

相關(guān):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<>();。
不過,總的來說,這一切都歸結(jié)為偏好。


查看完整回答
反對 回復 2023-05-17
  • 1 回答
  • 0 關(guān)注
  • 200 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號