如何修复Kotlin中的警告:不建议使用命名forms将单个元素分配到可变参数
在将Kotlin从1.1.4升级到最新的1.2.22之后,我得到了很多构建警告:
[WARNING] ... (422, 29) Assigning single elements to varargs in named form is deprecated
相关的代码是这样的:
422 @RequestMapping(value = "/privacy", method = arrayOf(RequestMethod.GET)) 423 fun mainLinkPrivacy(request: HttpServletRequest, model: MutableMap): String { 424 425 var lang = request.getParameter("lang") 426 427 if(lang == null || lang.isEmpty()) 428 lang = "EN" 429 430 model.put("lang",lang) 431 432 return "/mobile/main/mainlink_privacy" 433 }
这里是导入部分:
import org.apache.ibatis.annotations.Param import org.springframework.beans.factory.annotation.Autowired import org.springframework.core.env.Environment import org.springframework.stereotype.Controller import org.springframework.web.bind.annotation.RequestMapping import org.springframework.web.bind.annotation.RequestMethod import org.springframework.web.bind.annotation.RequestParam import javax.servlet.http.HttpServletRequest
这是我的Kotlin版本:
UTF-8 1.8 1.2.21 0.9.15 4.3.1.RELEASE
我认为问题存在method = arrayOf()
,但如何解决这个问题?
我读了关于这个弃用的Kotlin发行说明:可变参数的单个命名参数 ,它说:
“为了与注释中的数组文字保持一致,在命名表单( foo(items = i)
)中传递可变参数的单个项目已被弃用。请使用带有相应数组工厂函数的spread运算符:
foo(items = *intArrayOf(1))
在这种情况下,有一种优化可以消除冗余arrays的创建,从而防止性能下降。 单参数forms在Kotlin 1.2中产生警告,并将被放在Kotlin 1.3中。
但是我仍然不知道如何解决这个问题。
我认为不建议使用的forms是value = ["/privacy"], method = [RequestMethod.GET]
。
有关如何在kotlin中使用注释的更多文档可以在这里find