在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java/ 有關(guān)java方法中參數(shù)為數(shù)組類型的問題?

有關(guān)java方法中參數(shù)為數(shù)組類型的問題?

最近看到了幾個(gè)代碼,他們的方法參數(shù)都包含數(shù)組類型,但是在傳遞實(shí)參的時(shí)候卻沒有寫成數(shù)組形式,即沒有以大括號(hào)包圍,但實(shí)際上可以運(yùn)行,請(qǐng)問這是什么原因呢?謝謝!
代碼如下:

示例1:

@WebServlet(description = "a enter for wechat", urlPatterns = { "/aaa"},loadOnStartup=1) 

示例2:

@WebServlet(description = "a enter for wechat", urlPatterns =  "/aaa",loadOnStartup=1) 

Webservlet注解源碼:

    /**
     * @return array of URL patterns to which this Filter applies
     */
    String[] urlPatterns() default {};

問題一:
我在看了源碼之后,覺得urlPatterns的賦值應(yīng)該按照示例1寫才對(duì),但是實(shí)際上很多人都使用了示例2的寫法,但是示例2賦值的不應(yīng)該是string類型而不是string數(shù)組嗎?這樣不是會(huì)參數(shù)類型不匹配嗎?但實(shí)際上我測(cè)試發(fā)現(xiàn)兩種寫法都可以,這是為什么呢?

問題二:如果urlPatterns的url是多個(gè)而不是一個(gè)呢?是不是就必須按照示例1的寫法加上大括號(hào)寫成{url1,url2}這樣了?
謝謝??!

回答
編輯回答
焚音

這個(gè)是編譯器的語(yǔ)法糖,編譯器會(huì)把參數(shù)自動(dòng)寫成數(shù)組的形式,找個(gè)反編譯工具看一下就明白了,比如:
源碼:

clipboard.png

編譯后:

clipboard.png

類似的場(chǎng)景還有可變參數(shù),編譯器自動(dòng)將參數(shù)封裝成數(shù)組

2018年4月27日 22:53