成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

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

Carson / 3193人閱讀

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

最近在寫一個功能點,用了 Java 中的可變參數,真是把我搞得夠慘。。

什么是可變參數?

就是方法參數用 Object... args 三個點形式,一個參數可以接收多個參數。

實際的代碼就不帖了,來看這個示例吧:

示例1

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

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

大家猜結果是什么?結果如我們想象:

name=Java技術棧&memo=666

示例2

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

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

我把 "666" 移到了子方法里面,放到了 format 最后,再來看下結果是什么。

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

這并非是我想要的結果,把可變參數 params 數組對象地址作為值輸出出來了,把我搞得夠慘,最后我干掉了可變參數。。

JDK里面很多有用到可變參數的,可實際開發(fā)中,并不建議使用可變參考,它帶來的困擾和潛在的問題會遠大于便利性,比如在方法重構、重寫等也會帶來很多問題。

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

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

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

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

獲取這份阿里巴巴的Java開發(fā)手冊最新PDF版,大家可以關注Java技術棧微信公眾號,在后臺回復:手冊,即可獲取。

阿里巴巴也是不建議大家合作可變參數的,可知它帶來的坑會有多坑。。

另外,棧長已經整理了大量 Java 系列核心技術知識點文章,關注Java技術棧微信公眾號,在后臺回復關鍵字:java,即可獲取最新版。

本文原創(chuàng)首發(fā)于微信公眾號:Java技術棧(id:javastack),轉載請原樣保留本信息。

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

轉載請注明本文地址:http://systransis.cn/yun/74906.html

相關文章

  • [零基礎學Python]爹的字符編碼

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

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

    摘要:然而小程序放上去不到兩周,就在昨天就在昨天就在昨天,突然收到騰訊云的郵件提示,欠費,,什么情況啊,我懵逼了,想了半天,先充了幾塊錢進去,畢竟不想自己努力構思的產品,就誕生這么幾天就夭折了。 showImg(https://segmentfault.com/img/bVbkcfC?w=1080&h=298); 做過前端,或對小程序有些了解的同學都知道,小程序是沒有域名訪問概念的,訪問的路...

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

    摘要:然而小程序放上去不到兩周,就在昨天就在昨天就在昨天,突然收到騰訊云的郵件提示,欠費,,什么情況啊,我懵逼了,想了半天,先充了幾塊錢進去,畢竟不想自己努力構思的產品,就誕生這么幾天就夭折了。 showImg(https://segmentfault.com/img/bVbkcfC?w=1080&h=298); 做過前端,或對小程序有些了解的同學都知道,小程序是沒有域名訪問概念的,訪問的路...

    greatwhole 評論0 收藏0
  • 爹的三角形導航實現思路

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

    leap_frog 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<