有关java方法中参数为数组类型的问题?


代码如下:

示例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的赋值应该按照示例1写才对,但是实际上很多人都使用了示例2的写法,但是示例2赋值的不应该是string类型而不是string数组吗?这样不是会参数类型不匹配吗?但实际上我测试发现两种写法都可以,这是为什么呢?

问题二:如果urlPatterns的url是多个而不是一个呢?是不是就必须按照示例1的写法加上大括号写成{url1,url2}这样了?
谢谢!!


繁星点点滴滴
浏览 623回答 1
1回答

DIEA

这个是编译器的语法糖,编译器会把参数自动写成数组的形式,找个反编译工具看一下就明白了,比如:源码:编译后:类似的场景还有可变参数,编译器自动将参数封装成数组
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java