java Why Intellij的调试器为这个Scala代码两次命中断点
当我在if语句中设置调试点并启用“Log:Breakpoint hit message”时,下面是scala代码
object App1 {
def main(args: Array[String]): Unit = {
iftest()
}
def iftest(): Unit = {
val setA: Set[String] = Set("a", "b", "c");
var setB: Set[String] = Set("d", "e", "f")
if(setA.size > setB.size){ //here break point at line 8
println("bigger")
}
}
}
我在控制台中得到了以下输出。问题是为什么这个断点会被击中两次
Breakpoint reached at com.eguller.App1$.iftest(App1.scala:8)
Breakpoint reached at com.eguller.App1$.iftest(App1.scala:8)
但是,对于遵循类似的Java代码,断点只命中一次
Set<String> set1 = new HashSet<>();
set1.add("1");
set1.add("2");
Set<String> set2 = new HashSet<>();
set2.add("a");
set2.add("b");
if(set1.size() > set2.size()){ //here break point at line 8
System.out.println("size different");
}
我得到了以下输出
Breakpoint reached at com.eguller.JApp.main(JApp.java:8)
这是Intellij调试器中的一个bug,还是Scala编程语言的一个功能
IntelliJ IDEA 2021.3 Java-11 Scala-2.12.15
共 (0) 个答案