亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

坑爹的 Java 可變參數(shù),把我整得夠慘。。

Carson / 3387人閱讀

摘要:最近在寫(xiě)一個(gè)功能點(diǎn),用了中的可變參數(shù),真是把我搞得夠慘。。我找到了阿里巴巴的開(kāi)發(fā)手冊(cè)中關(guān)于可變參數(shù)的規(guī)約。阿里巴巴也是不建議大家合作可變參數(shù)的,可知它帶來(lái)的坑會(huì)有多坑。。

最近在寫(xiě)一個(gè)功能點(diǎn),用了 Java 中的可變參數(shù),真是把我搞得夠慘。。

什么是可變參數(shù)?

就是方法參數(shù)用 Object... args 三個(gè)點(diǎn)形式,一個(gè)參數(shù)可以接收多個(gè)參數(shù)。

實(shí)際的代碼就不帖了,來(lái)看這個(gè)示例吧:

示例1

public static void main(String[] args) {
    test("name=%s&memo=%s", "Java技術(shù)棧", "666");
}

private static void test(String text, Object... params) {
    String result = String.format(text, params);
    System.out.println(result);
}

大家猜結(jié)果是什么?結(jié)果如我們想象:

name=Java技術(shù)棧&memo=666

示例2

public static void main(String[] args) {
    test("name=%s&memo=%s", "Java技術(shù)棧");
}

private static void test(String text, Object... params) {
    String result = String.format(text, params, "666");
    System.out.println(result);
}

我把 "666" 移到了子方法里面,放到了 format 最后,再來(lái)看下結(jié)果是什么。

name=[Ljava.lang.Object;@4cb2c100&memo=666

這并非是我想要的結(jié)果,把可變參數(shù) params 數(shù)組對(duì)象地址作為值輸出出來(lái)了,把我搞得夠慘,最后我干掉了可變參數(shù)。。

JDK里面很多有用到可變參數(shù)的,可實(shí)際開(kāi)發(fā)中,并不建議使用可變參考,它帶來(lái)的困擾和潛在的問(wèn)題會(huì)遠(yuǎn)大于便利性,比如在方法重構(gòu)、重寫(xiě)等也會(huì)帶來(lái)很多問(wèn)題。

關(guān)于可變參數(shù),也是有開(kāi)發(fā)規(guī)范的,不能隨便寫(xiě)。我找到了阿里巴巴的《Java開(kāi)發(fā)手冊(cè)》中關(guān)于可變參數(shù)的規(guī)約。

相同參數(shù)類型,相同業(yè)務(wù)含義,才可以使用 Java 的可變參數(shù),避免使用 Object 。

說(shuō)明:可變參數(shù)必須放置在參數(shù)列表的最后。 ( 提倡同學(xué)們盡量不用可變參數(shù)編程 )

正例: public List listUsers(String type, Long... ids) {...}

獲取這份阿里巴巴的Java開(kāi)發(fā)手冊(cè)最新PDF版,大家可以關(guān)注Java技術(shù)棧微信公眾號(hào),在后臺(tái)回復(fù):手冊(cè),即可獲取。

阿里巴巴也是不建議大家合作可變參數(shù)的,可知它帶來(lái)的坑會(huì)有多坑。。

另外,棧長(zhǎng)已經(jīng)整理了大量 Java 系列核心技術(shù)知識(shí)點(diǎn)文章,關(guān)注Java技術(shù)棧微信公眾號(hào),在后臺(tái)回復(fù)關(guān)鍵字:java,即可獲取最新版。

本文原創(chuàng)首發(fā)于微信公眾號(hào):Java技術(shù)棧(id:javastack),轉(zhuǎn)載請(qǐng)?jiān)瓨颖A舯拘畔ⅰ?/p>

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/74906.html

相關(guān)文章

  • [零基礎(chǔ)學(xué)Python]爹的字符編碼

    摘要:所以,哪怕是初學(xué)者,都要了解并能夠解決字符編碼問(wèn)題。在這個(gè)世界上,有好多不同的字符編碼。目前最新的版本為,已收入超過(guò)十萬(wàn)個(gè)字符第十萬(wàn)個(gè)字符在年獲采納。涵蓋的數(shù)據(jù)除了視覺(jué)上的字形編碼方法標(biāo)準(zhǔn)的字符編碼外,還包含了字符特性,如大小寫(xiě)字母。 字符編碼,在編程中,是一個(gè)讓學(xué)習(xí)者比較郁悶的東西,比如一個(gè)str,如果都是英文,好說(shuō)多了。但恰恰不是如此,中文是我們不得不用的。所以,哪怕是初學(xué)者,都要...

    rozbo 評(píng)論0 收藏0
  • 小程序如何防止資源被盜刷?

    摘要:然而小程序放上去不到兩周,就在昨天就在昨天就在昨天,突然收到騰訊云的郵件提示,欠費(fèi),,什么情況啊,我懵逼了,想了半天,先充了幾塊錢(qián)進(jìn)去,畢竟不想自己努力構(gòu)思的產(chǎn)品,就誕生這么幾天就夭折了。 showImg(https://segmentfault.com/img/bVbkcfC?w=1080&h=298); 做過(guò)前端,或?qū)π〕绦蛴行┝私獾耐瑢W(xué)都知道,小程序是沒(méi)有域名訪問(wèn)概念的,訪問(wèn)的路...

    jerryloveemily 評(píng)論0 收藏0
  • 小程序如何防止資源被盜刷?

    摘要:然而小程序放上去不到兩周,就在昨天就在昨天就在昨天,突然收到騰訊云的郵件提示,欠費(fèi),,什么情況啊,我懵逼了,想了半天,先充了幾塊錢(qián)進(jìn)去,畢竟不想自己努力構(gòu)思的產(chǎn)品,就誕生這么幾天就夭折了。 showImg(https://segmentfault.com/img/bVbkcfC?w=1080&h=298); 做過(guò)前端,或?qū)π〕绦蛴行┝私獾耐瑢W(xué)都知道,小程序是沒(méi)有域名訪問(wèn)概念的,訪問(wèn)的路...

    greatwhole 評(píng)論0 收藏0
  • 爹的三角形導(dǎo)航實(shí)現(xiàn)思路

    摘要:使用監(jiān)聽(tīng)中的元素的與事件,然后在中顯示第二層中相同索引的元素,從而實(shí)現(xiàn)高亮,事件用于清除高亮 坑爹的三角形導(dǎo)航終于制作完成了,下面分享一下思路,先看最終效果:http://mall.juesheng.com/act/butie3showImg(https://segmentfault.com/img/bVkFK9); 基本思路:使用古老的 Image Mapping 技術(shù),在圖片上定義...

    leap_frog 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<