gar*_*ary 14 spring servlets kotlin
在将Kotlin从1.1.4升级到最新的1.2.22之后,我收到了很多构建警告:
[WARNING] ... (422, 29) Assigning single elements to varargs in named form is deprecated
Run Code Online (Sandbox Code Playgroud)
相关代码如下:
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 }
Run Code Online (Sandbox Code Playgroud)
以下是导入部分:
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
Run Code Online (Sandbox Code Playgroud)
这是我的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>
Run Code Online (Sandbox Code Playgroud)
我认为问题存在method = arrayOf(),但如何解决这个问题?
我读了关于这个Deprecation的Kotlin发行说明:vararg的单个命名参数,它说:
"为了与注释中的数组文字保持一致,foo(items = i)不推荐在命名表单()中为vararg参数传递单个项目.请使用带有相应数组工厂函数的spread运算符:
foo(items = *intArrayOf(1))
Run Code Online (Sandbox Code Playgroud)
在这种情况下,有一种优化可以消除冗余阵列的创建,从而防止性能下降.单参数形式在Kotlin 1.2中产生警告,并将在Kotlin 1.3中删除."
但我仍然没有找到关于如何修复它的提示.
| 归档时间: |
|
| 查看次数: |
4446 次 |
| 最近记录: |