Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IntelliJ IDEA:为什么readLine()需要两个用户输入,而不是一个使用Kotlin的用户输入?_Kotlin_Intellij Idea - Fatal编程技术网

IntelliJ IDEA:为什么readLine()需要两个用户输入,而不是一个使用Kotlin的用户输入?

IntelliJ IDEA:为什么readLine()需要两个用户输入,而不是一个使用Kotlin的用户输入?,kotlin,intellij-idea,Kotlin,Intellij Idea,我编写了一个简单的程序,从控制台获取用户的输入,然后打印出来。但是当用户输入时,它请求第二个用户输入,并且只读取第二个输入 代码: 我正在使用IntelliJ IDEA的最新版本。我不知道为什么会这样。我正在使用Windows。可能是因为您正在使用“!!”。双击(!!)或双感叹号运算符或非空断言运算符用于您确信值将始终被断言(非空)的变量。如果一个值为null且一个使用“!!”,则将引发一个单null指针异常。因此,只有当我们希望在找到任何空值时始终抛出一个异常时,才使用此运算符 就你而言: f

我编写了一个简单的程序,从控制台获取用户的输入,然后打印出来。但是当用户输入时,它请求第二个用户输入,并且只读取第二个输入

代码:


我正在使用IntelliJ IDEA的最新版本。我不知道为什么会这样。我正在使用Windows。

可能是因为您正在使用“!!”。双击(!!)或双感叹号运算符或非空断言运算符用于您确信值将始终被断言(非空)的变量。如果一个值为null且一个使用“!!”,则将引发一个单null指针异常。因此,只有当我们希望在找到任何空值时始终抛出一个异常时,才使用此运算符

就你而言:

fun main(args: Array<String>) {
    print("Enter text: ")

    val stringInput = readLine()
    println("Readed text: $stringInput")
}

由于用户输入为null,字符串长度将为null,因此程序将抛出一个kotlin.KotlinNullPointerException

这似乎是IntelliJ内部控制台中的一个错误:请参阅(通过查找)

(同样的问题似乎也在后面和后面。)


我不知道它是否指的是同一个问题,但建议更改“编辑配置”菜单中的JRE选项,然后再次更改它们。

在我的情况下,这是一个使用Gradle创建的项目。
我将创建项目时的构建系统选项更改为IntelliJ,问题就解决了。

请解释为什么
是否存在问题即使没有
,问题仍然存在@Lizzie我现在可以想到以下可能性:-您是否错误地声明了2个公共静态void main方法?-检查是否单击了“静音断点”按钮-尝试maven clean,然后是maveninstall@Lizzie再次单击debug,在右角,您应该会看到一个工具栏。有一个图标看起来像两个红色断点重叠。点击那个。在任何异常情况下,它将弹出打开菜单。请确保已选中Enabled、Suspend、All、Condition、log message to console和log evaluated expression。更改JRE选项后,它将按预期工作。谢谢
> Task :MainKt.main()
Enter text: FirstInput
SecondInput
Disconnected from the target VM, address: 'localhost:37282', transport: 'socket'
Connected to the target VM, address: '127.0.0.1:37264', transport: 'socket'
Readed text: SecondInput
fun main(args: Array<String>) {
    print("Enter text: ")

    val stringInput = readLine()
    println("Readed text: $stringInput")
}
fun main(args: Array) {
   println("Enter text: ")
   val stringInput = null

   val inputLength = stringInput!!.length

   println("Length of the string is : $inputLength")

}