据我所知,当我们想在 java 中调用 wait
时,我们需要同步 API/ block ,否则它将在运行时以 IllegalMonitorStateException
结束。我的问题是,既然我们非常确定它总是导致异常,为什么编译器不提示它?
最佳答案
因为您可能一直在调用堆栈中较高位置的同步块(synchronized block)中调用具有 wait
的方法。编译器只能找到代码的语法有效性 - 它无法检查逻辑错误。
关于java - 为什么编译器不提示在非同步块(synchronized block)中使用等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32304028/