环境
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’
问题分析
从项目配置上没有看出问题,在 优快云 上查找:
- 文章[1]说是可能 SDK 设置冲突,但我设置中没看出问题;
- 文章[2]说是手动导入 java.io 包,没找到如何导入,再说 Kotlin 就是一种 JVM 语言,且完全兼容 Java,貌似还要手动导入没道理。但其表示” kotlin里面确实没有这个类。Serializable是java.io包中的一个类“给了我启示,就是一定是哪里设置错误。
问题解决
IDE配置项只有两个地方:(1) Preference -> Build, (2) File -> Project Structure。第二项最有可能。
当前配置为:
观察这里,Project SDK 为 11,但不知道是什么东西的版本。此时下面的 Project language level对应为 SDK default.
按下图修改 Project SDK 为 1.8 (java version “1.8.0_102”),注意 Project language leve 也自动变化了:
重新运行,就正常了。
至于原因,因时间有限,暂时不深究了。有清楚的可以留言,我会更新加上。
参考文献
[1] Android与kotlin报错
[2] kotlin之Serializable