gpt4 book ai didi

Java 程序在调用特定类的任何方法时卡住

转载 作者:行者123 更新时间:2023-11-30 04:42:40 25 4
gpt4 key购买 nike

我正在开发一个应用程序,该应用程序决定以一种非常无法解释的方式停止工作。经过一些调试和错误跟踪,我发现问题出在代码中对特定方法的调用中。

public static void main(String[] args) throws FileNotFoundException {
System.out.println("Print ");
InternalPanel.init();
}

IN INTERNAL PANEL

public static void init() {
System.out.println("Line");
}

为了澄清,从其他类调用任何其他方法都是有效的。从此特定类调用任何方法都不起作用。

此外,这个类(以及其中的方法)一直有效。

当它停止工作时,我对程序中完全不相关的内容进行了微小的更改(例如,在单独的线程中,对相关类没有影响)

最佳答案

尝试查看InternalPanel 类的其余部分。静态初始化中的某些内容很可能会影响其他内容。例如:

public class InternalPanel
{
private static SomeOtherThing thing = new SomeOtherThing();
...
}

在上面的代码中,如果实例化 SomeOtherThing 最终导致一系列事件,最终产生无限循环或堆栈溢出,那么就会产生您所看到的效果。它实际上不是对 init 函数的调用,而是 InternalPanel 类的静态初始化。

(您可以通过让测试程序调用 InternalPanel 类上的其他虚拟方法来轻松检查这是否是静态初始化问题。)

在 Debug模式下,您可能只想在程序似乎被卡住时尝试随机暂停执行,并查看正在运行的代码以及堆栈跟踪的样子。

关于Java 程序在调用特定类的任何方法时卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11895174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com