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

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

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

[转载] Java中的命名参数

發(fā)布時(shí)間:2025/3/11 java 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转载] Java中的命名参数 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

參考鏈接: Java命名約定

創(chuàng)建具有許多參數(shù)的方法是一個(gè)主要的缺點(diǎn)。 每當(dāng)需要?jiǎng)?chuàng)建這樣的方法時(shí),就在空氣中聞一聞:這是代碼的味道。 強(qiáng)化單元測(cè)試,然后進(jìn)行重構(gòu)。 沒(méi)有借口,沒(méi)有屁股。 重構(gòu)! 使用構(gòu)建器模式,甚至更好地使用Fluent API。 對(duì)于后者,注釋處理器的影響可能會(huì)有很大幫助。??

? 綜上所述,當(dāng)我們面對(duì)現(xiàn)實(shí)生活而不是我們?cè)跇I(yè)余愛(ài)好項(xiàng)目中可以遵循的理想主義模式時(shí),我們可能會(huì)邁入人生的關(guān)鍵時(shí)刻。 遺留下來(lái)的企業(yè)庫(kù)怪物具有數(shù)以千計(jì)的參數(shù)方法,您沒(méi)有權(quán)力,時(shí)間,勇氣或興趣(對(duì)您不利)來(lái)修改……操作……對(duì)其進(jìn)行重構(gòu)。 如果有時(shí)間,您可以將構(gòu)建器創(chuàng)建為外觀,將丑陋的API隱藏在其后。 創(chuàng)建構(gòu)建器仍然是您甚至在編寫之前就必須進(jìn)行單元測(cè)試的代碼(您知道:TDD),而您可能沒(méi)有時(shí)間。 調(diào)用怪異方法的代碼也已經(jīng)存在,您只需對(duì)其進(jìn)行維護(hù)即可。??

? 您仍然可以做一些小技巧。 它可能并不完美,但是仍然有些完美。??

? 假設(shè)有一個(gè)方法:??

?public void monster(String contactName, String contactId, String street, String district,

? ? ? ? ? ? ? ? ? ? ...

? ? ? ? ? ? ? ? ? ? Long pT){

...

}

? 首先是在調(diào)用者的位置明智地選擇局部變量。 可惜已經(jīng)選擇了名稱,您可能不想更改它。 可能有某些原因,例如,遵循了應(yīng)用程序范圍的命名約定,即使您的樣式不是這樣,也可能有意義。 因此調(diào)用:??

?monster(nm, "05300" + dI, getStrt(), d, ... , z+g % 3L );

? 不完全是我在說(shuō)的。 這就是您所擁有的,您可以使用它,也可以在代碼中插入新變量:??

?String contactName = nm;

String contactId = "05300" + dI;

String street = getStrt();

Street district = d;

...

Long pT = z+g % 3L;

monster(contactName, contactId, street, district, ... ,pT );

? 或者甚至可以用Java中不常見(jiàn)的方式編寫它,盡管完全合法:??

?String contactName, contactId, street, district;

...

Long pT;

monster(contactName = nm, contactId = "05300" + dI, street = getStrt(), district = d, ... ,pT = z+g % 3L );

? 好吃嗎 依靠。 我不會(huì)在口味上爭(zhēng)論。 如果您不喜歡那樣,還有另一種方法。 您可以定義輔助和非常簡(jiǎn)單的靜態(tài)方法:??

?static <T> T contactName(T t){ return T;}

static <T> T contactId(T t){ return T;}

static <T> T street(T t){ return T;}

static <T> T district(T t){ return T;}

...

static <T> T pT(T t){ return T;}

?

monster(contactName(nm), contactId("05300" + dI), street(getStrt()(, district(d), ... ,pT(z+g % 3L) );

? 該代碼仍然很丑陋,但是在調(diào)用者處更具可讀性。 你甚至可以收集靜態(tài)方法為工具類或接口在Java中8的情況下,命名為喜歡with , using , to等等。 您可以將它們靜態(tài)導(dǎo)入到您的代碼中,并進(jìn)行如下一些方法調(diào)用:??

?doSomething(using(someParameter), with(someOtherParameter), to(resultStore));

? 如果您回答了最后一個(gè)問(wèn)題,那么所有這些都將使您感到惱: * pT是什么祝福。??

? ( * “隨便什么,您都可以用其他任何單詞代替”)??

?

? 翻譯自: https://www.javacodegeeks.com/2014/09/named-parameters-in-java.html

總結(jié)

以上是生活随笔為你收集整理的[转载] Java中的命名参数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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