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")
}