You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin程序运行抛NullPointerException:代码问题还是在线IDE不支持输入?

问题原因与解决办法

1. 在线IDE的输入机制问题

这个在线IDE支持用户输入,但并非实时控制台交互模式。程序运行前,你需要先在页面专门的「Input」输入框中预先填写好要输入的内容(比如测试用的数字),程序运行时会直接读取这些预填内容。如果没填任何内容,readLine()会返回null,而你代码里用!!强制非空,就会触发NullPointerException。

2. 代码的不安全点

你代码里的readLine()!!属于强制非空断言,本身就存在风险:除了输入为空的情况,若用户输入的不是有效整数,后续的input.toInt()还会抛出NumberFormatException。可以优化代码,增加空值和格式校验:

fun main() {
    println("Give me a number of minutes!")
    // 处理空输入
    val input = readLine() ?: run {
        println("未提供输入内容!")
        return
    }
    // 处理非整数输入
    val inputInMinutes = input.toIntOrNull() ?: run {
        println("输入不是有效的整数!")
        return
    }
    val resultInSeconds = inputInMinutes * 60
    println("That is $resultInSeconds seconds!")
}

3. 正确使用IDE输入的步骤

运行程序前,找到控制台区域上方的「Input」标签,在输入框中填写你要测试的数字(比如5),再点击运行按钮,程序就能正常读取输入并输出结果。

内容的提问来源于stack exchange,提问作者Mehalon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 09:47:05