gpt4 book ai didi

java - 为什么 @RequestMapping 注解在 java 中接受 String 参数而在 scala 中不接受?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:10:16 27 4
gpt4 key购买 nike

阅读@RequestMapping 文档:http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/web/bind/annotation/RequestMapping.html

它的路径映射接受一个字符串数组参数。

所以这可以使用 java :

@RequestMapping("MYVIEW")

但在 scala 中我需要使用:

@RequestMapping(Array("MYVIEW"))

scala 版本有意义,因为注释需要一个字符串数组。但是为什么上面在 java 中工作,它不应该给出编译时错误吗?

下面的类“ArrayChecker”(我写的一个类来说明这一点)导致 java 编译时错误:

The method acceptArrayParam(String[]) in the type ArrayChecker is not applicable for the arguments (String)

public class ArrayChecker {

public static void main(String args[]){

String[] strArray;

acceptArrayParam("test");
}

private static void acceptArrayParam(String[] param){

}
}

类似的错误不应该是@RequestMapping("MYVIEW")引起的吗?

最佳答案

9.7.1 Java SE 规范声明:

If the element type is an array type and the corresponding ElementValue is not an ElementValueArrayInitializer, then an array value whose sole element is the value represented by the ElementValue is associated with the element. Otherwise, if the corresponding ElementValue is an ElementValueArrayInitializer, then the array value represented by the ElementValueArrayInitializer is associated with the element.

附上澄清上述说明的评论:

In other words, it is permissible to omit the curly braces when a single-element array is to be associated with an array-valued annotation type element.

因为 Scala 没有等效的数组初始化语法,所以您必须使用 Array(elems)

关于java - 为什么 @RequestMapping 注解在 java 中接受 String 参数而在 scala 中不接受?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14323732/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com