代码如下:示例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}这样了?谢谢!!
1 回答

DIEA
TA贡献1820条经验 获得超2个赞
这个是编译器的语法糖,编译器会把参数自动写成数组的形式,找个反编译工具看一下就明白了,比如:
源码:
编译后:
类似的场景还有可变参数,编译器自动将参数封装成数组
添加回答
举报
0/150
提交
取消