gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 13:34:03 25 4
gpt4 key购买 nike

在将 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/

25 4 0