【问题标题】:Kotlin array initialization throws null pointer exceptionKotlin 数组初始化抛出空指针异常
【发布时间】:2018-10-23 02:23:44
【问题描述】:

我是 kotlin 的初学者,我正在尝试使用接受大小和函数的构造函数来初始化数组。这就是我所拥有的:

fun main(args: Array<String>) {
    var ary = Array(5, {x -> x + 2})
    println(ary[2])
}

但是它在第一行抛出了一个空指针异常。为什么会这样?


编辑:我是原始发帖人的教授,我们正在努力让这件事一起工作。以下是更多信息:

我已将上面的代码编辑为完整的程序。我们在服务器上安装的 Kotlin 版本是:

$ kotlinc -version
info: kotlinc-jvm 1.2.70 (JRE 1.8.0_144-jdk_2017_08_24_20_46-b00)

当我尝试从命令行编译和运行时,我得到:

$ kotlinc example.kt -include-runtime -d example.jar
$ java -jar example.jar 
Exception in thread "main" java.lang.NullPointerException
    at ExampleKt.main(example.kt:2)

我会注意到这段代码在我的笔记本电脑上编译得很好,它有一个旧版本的 Kotlin。

【问题讨论】:

  • 代码可以正常工作并打印出4
  • 代码没有问题。用 NPE 上传 IDE 截图怎么样。
  • 如果您有异常,也可能值得将堆栈跟踪添加到问题中。通常这会为您提供有关错误发生原因的更多信息。
  • 我试过了,得到了完全相同的错误

标签: kotlin


【解决方案1】:

这是 Kotlin 编译器的 AOT 编译(操作系统相关)版本中的 a bug。请查看问题以获取更新。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-16
    • 1970-01-01
    相关资源
    最近更新 更多