日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

通用名称

發(fā)布時(shí)間:2023/12/3 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 通用名称 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

泛型類(lèi)型參數(shù)名稱(chēng)通常包含一個(gè)大寫(xiě)字母字符。 如果您開(kāi)始閱讀有關(guān)泛型的官方ORACLE文檔,則第一個(gè)示例是

/*** Generic version of the Box class.* @param <T> the type of the value being boxed*/ public class Box<T> {// T stands for "Type"private T t;public void set(T t) { this.t = t; }public T get() { return t; } }

通用類(lèi)型的名稱(chēng)為T(mén) 一個(gè)字母,意義不大,通常與其他標(biāo)識(shí)符命名樣式相對(duì)。 它僅廣泛用于泛型。 奇怪。 是什么原因呢?

到目前為止,我已經(jīng)聽(tīng)到了以下論點(diǎn):

  • 一個(gè)類(lèi)或方法不需要很多類(lèi)型變量名,因此您不會(huì)用完ABC的字母。
    • 基于這種推理,我們還應(yīng)該使用一個(gè)字符方法名稱(chēng)嗎?
  • 因?yàn)橛蠮avaDoc,所以一個(gè)字符不會(huì)固有地解釋類(lèi)型不是問(wèn)題。 您可以解釋類(lèi)型名稱(chēng)的實(shí)際含義。
    • 而且我們還應(yīng)該忘記我們所學(xué)到的有關(guān)干凈代碼和變量命名的所有內(nèi)容。
  • 具有一個(gè)字符的類(lèi)型名稱(chēng)使它們與變量,方法和類(lèi)名稱(chēng)以及常量名稱(chēng)區(qū)分開(kāi)。
    • 這是一個(gè)好點(diǎn)。
  • 但是Google Code Style允許您使用多種字符類(lèi)型的名稱(chēng)。
    • 哦是的

然后怎樣呢?

如果您不喜歡泛型的單個(gè)字符命名,則可以使用_或$前綴來(lái)命名它們。 這是您可以在stackoverflow上看到的建議。 至于我:這很奇怪。 使用$可以使我感到“歡欣”,溫暖的感覺(jué)使我想起了我在編寫(xiě)Perl時(shí)的青春。 我不再這樣做了,這是有充分理由的。 時(shí)代改變了,技術(shù)改變了,我改變了。

$通常由編譯器和某些代碼生成器用來(lái)命名生成的字段和方法。 在Java源代碼級(jí)別上使用$可能會(huì)導(dǎo)致某些命名沖突,導(dǎo)致編譯器難以找到合適的名稱(chēng),但是在這方面,當(dāng)前版本的Java編譯器相當(dāng)容易出錯(cuò)。 他們只是一直嘗試通過(guò)一些簡(jiǎn)單的算法來(lái)找到一個(gè)合適的名稱(chēng),直到找到一個(gè)不會(huì)與任何Java源代碼名稱(chēng)沖突的名稱(chēng)為止,因此這不會(huì)成為問(wèn)題。

下劃線(xiàn) :嗯,實(shí)際上是我們過(guò)去使用的東西,而不是空間。 在舊的矩陣打印機(jī)上,下劃線(xiàn)字符打印得很差,以至于您無(wú)法將其與空格區(qū)分開(kāi),因此使用多字變量名稱(chēng)是一個(gè)丑陋的竅門(mén)。 由于名稱(chēng)開(kāi)頭的下劃線(xiàn)是一個(gè)完全反模式的恕我直言,實(shí)際上是使用相同的名稱(chēng)來(lái)命名兩件事。 幾乎就像沒(méi)有下劃線(xiàn)字符一樣。

您也可以使用T_前綴,因?yàn)檫@是C ++和C#中的慣例(我不太熟悉T_前綴,對(duì)此我不確定)。 但這和沒(méi)有T一樣丑陋。

我的喜好是使用有意義的名稱(chēng),并在常量的情況下遵循相同的約定。 例如使用

public final class EventProducer<LISTENER extends IEventListener<EVENT>,EVENT> implements IEventProducer<LISTENER, EVENT> {

代替

public final class EventProducer<L extends IEventListener<E>,E> implements IEventProducer<L,E> {

即使那是我的個(gè)人,高級(jí),專(zhuān)業(yè),專(zhuān)家意見(jiàn),但我不使用它。 為什么? 因?yàn)槲以趫F(tuán)隊(duì)中的企業(yè)環(huán)境中工作。 使用比官方默認(rèn)設(shè)置更具可讀性的內(nèi)容所獲得的收益并不像辯論和分歧所造成的損害那樣高。 除此以外,新員工還必須適應(yīng)當(dāng)?shù)氐娘L(fēng)格,而且也要花錢(qián)。 使用可用但不是最佳的全局樣式比使用良好的局部樣式更好。 忍受它。

我們可以走向全球嗎?

你可以試試。 這是我最多能說(shuō)的。 如果最初的建議設(shè)定編碼標(biāo)準(zhǔn)比1960年代的樣式一字母法更好,那將是更好的選擇,但這已經(jīng)是歷史了。 損壞已經(jīng)完成。 而且,這與在OO中引入null的絕妙想法所造成的損害無(wú)可比擬。

只要Java仍然存在,我們將只使用一個(gè)字符的泛型。 而且由于我快50歲了,所以這段時(shí)期比我的壽命更長(zhǎng)。 請(qǐng)注意,COBOL仍然有效。 我們應(yīng)該對(duì)Java有所期待。

翻譯自: https://www.javacodegeeks.com/2015/05/generics-names.html

總結(jié)

以上是生活随笔為你收集整理的通用名称的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。