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。第二项最有可能。
当前配置为:
初始配置观察这里,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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值