为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

繁星点点滴滴 2018-09-08 09:35:29
代码如下:示例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个赞

这个是编译器的语法糖,编译器会把参数自动写成数组的形式,找个反编译工具看一下就明白了,比如:
源码:

https://img1.sycdn.imooc.com//5b94791c0001695508000195.jpg

编译后:

https://img1.sycdn.imooc.com//5b9479290001aa4008000258.jpg

类似的场景还有可变参数,编译器自动将参数封装成数组


查看完整回答
反对 回复 2018-09-09
  • 1 回答
  • 0 关注
  • 622 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号