草庐IT

spring - 如何修复 Kotlin 中的警告 : Assigning single elements to varargs in named form is deprecated

coder 2023-05-08 原文

在将 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, Any>): 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 版本:

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
    <kotlin.version>1.2.21</kotlin.version>
    <dokka.version>0.9.15</dokka.version>
    <spring.framework.version>4.3.1.RELEASE</spring.framework.version>
</properties>

我认为问题存在于method = arrayOf(),但是如何解决呢?

我阅读了关于 Deprecation: single named argument for vararg 的 Kotlin 发行说明,它说:


“为了与注解中的数组字面量保持一致,以命名形式 (foo(items = i)) 为可变参数传递单个项目已被弃用。请使用扩展运算符和对应的数组工厂函数:

foo(items = *intArrayOf(1))

有一种优化可以消除在这种情况下创建的冗余数组,从而防止性能下降。单参数形式在 Kotlin 1.2 中会产生警告,并将在 Kotlin 1.3 中删除。”


但我仍然没有找到有关如何修复它的提示。

最佳答案

我认为不被弃用的形式是 value = ["/privacy"], method = [RequestMethod.GET].

更多关于如何在 kotlin 中使用注解的文档可以找到 here

关于spring - 如何修复 Kotlin 中的警告 : Assigning single elements to varargs in named form is deprecated,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48414883/

有关spring - 如何修复 Kotlin 中的警告 : Assigning single elements to varargs in named form is deprecated的更多相关文章

随机推荐