【问题标题】:Kotlin unresolved reference linkedListOfKotlin 未解析参考linkedListOf
【发布时间】:2016-03-21 18:46:33
【问题描述】:

关注这个帖子http://obviam.net/index.php/libgdx-and-kotlin/我 创建了一个项目,并使用 Atom 进行了编辑。它编译并在安卓设备上运行。我想转换为 AndroidStudio 以获得更好的工具。

我使用的是 AndroidStudio 1.5.1,它说我有最新版本的 kotlin 插件。我使用 LibGDX 安装程序创建了一个新项目,导入到 AdroidStudio,将主类转换为 kotlin,一切正常。然后我粘贴了我现有的代码,当我构建时,这一行:

val bullets:MutableList<NewBullet> = linkedListOf() 

得到这个错误:

错误:(19, 42) 未解析的引用:linkedListOf

当我选择工具 -> Kotlin -> 配置时,它显示“所有带有 Kotlin 文件的模块都已配置”。

我也尝试将现有项目导入AndroidStudio,结果是同样的问题。

【问题讨论】:

    标签: android-studio libgdx kotlin


    【解决方案1】:

    正如 Kotlin 1.0 RC 的 change log 中所说,linkedListOf 已被弃用,现在不可用。您引用的文章使用的是较旧的 Kotlin 1.0 Beta。

    要从可变参数创建LinkedList&lt;T&gt;,您可以将listOf(...) 传递给构造函数:

    val bullets: MutableList<SomeType> = LinkedList(listOf(item1, item2))
    

    或写你自己的linkedListOf:

    fun <T> linkedListOf(vararg items: T) = LinkedList<T>().apply { 
        for (i in items) { add(i) }
    }
    

    【讨论】:

    • 我更改为 LinkedList(listOf()) 并得到一个未解决的参考错误。所以我添加了 import java.util.LinkedList ,现在它可以工作了。所以我们现在需要对 java.util 的引用吗?这听起来不对。顺便说一句 - 这在 1.0.0 中工作,并在 1.0.1 中删除?突破性变更管理 IntelliJ 的最佳选择!
    • @user2241515,如果你只需要一个空的LinkedList,你可以调用它的构造函数并且不传递任何东西:val bullets: MutableList&lt;NewBullet&gt; = LinkedList()
    • @user2241515,Kotlin 没有自己的 Java 集合接口实现,所以你必须使用 java.util.LinkedList。至于stdlib的变化,不,它是在1.0.0发布之前,在Release Candidate阶段。
    • 它适用于这个版本:bruce@barsoom:~/Git/shmupwarz$ kotlinc -version info: Kotlin Compiler version 1.0.0
    • 我从未安装过预发布版本
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-17
    • 1970-01-01
    • 2018-10-25
    • 1970-01-01
    • 2021-11-02
    • 1970-01-01
    相关资源
    最近更新 更多