Kotlin: Cannot access java.io.Serializable’ which is a supertype of ‘kotlin.Int’

环境

IntelliJ IDEA CE

问题描述

新建一个项目,用于学习 Kotlin。但一开始就遇到了拦路虎。
代码如下:

>>> TypeIntro.kt
fun main(args: Array<String>) {
   var expriencePoints: Int = 5
   expriencePoints += 5
   println(expriencePoints)
}

IDE 提示 += 有误,运行提示错误:

Kotlin: Cannot access java.io.Serializable’ which is a supertype of ‘kotlin.Int’

问题分析

从项目配置上没有看出问题,在 CSDN 上查找:

  • 文章[1]说是可能 SDK 设置冲突,但我设置中没看出问题;
  • 文章[2]说是手动导入 java.io 包,没找到如何导入,再说 Kotlin 就是一种 JVM 语言,且完全兼容 Java,貌似还要手动导入没道理。但其表示” kotlin里面确实没有这个类。Serializable是java.io包中的一个类“给了我启示,就是一定是哪里设置错误。

问题解决

IDE配置项只有两个地方:(1) Preference -> Build, (2) File -> Project Structure。第二项最有可能。
当前配置为:
Kotlin: Cannot access java.io.Serializable’ which is a supertype of ‘kotlin.Int’_第1张图片观察这里,Project SDK 为 11,但不知道是什么东西的版本。此时下面的 Project language level对应为 SDK default.

按下图修改 Project SDK 为 1.8 (java version “1.8.0_102”),注意 Project language leve 也自动变化了:
Kotlin: Cannot access java.io.Serializable’ which is a supertype of ‘kotlin.Int’_第2张图片重新运行,就正常了。

至于原因,因时间有限,暂时不深究了。有清楚的可以留言,我会更新加上。

参考文献

[1] Android与kotlin报错
[2] kotlin之Serializable

你可能感兴趣的:(#,Kotlin,kotlin,java,android)