所以我正在(远程)在 Eclipse 中调试一个 java/jboss 应用程序,逐行执行。在某一时刻,一个 GridSquare
对象数组(GridSquare
是一个相当简单的独立类,包含一些属性和方法)由方法调用创建,即:
GridSquare[] squares = this.theGrid.getSquares(14, 18, 220, 222);
...当我实际执行代码时,squares
数组确实填充了 GridSquare
对象,但在单步执行代码和调试时我会感到奇怪。在上面显示的赋值之后的行上的断点处,如果我尝试查看 squares
数组,而不是值,我会得到这个:
org.eclipse.debug.core.DebugException: com.sun.jdi.ClassNotLoadedException: 检索数组的组件类型时发生类型未加载。
...有人知道那是什么意思吗?
最佳答案
基本上这意味着类加载器没有加载 GridSquare[] 类。话虽这么说,这在某种程度上听起来像是调试器中的一个错误。与代码的断点关联似乎略有破坏。您需要重新编译以使行号同步,或者出现其他问题。在代码中的那个点(在分配之后)它需要被加载。除非 getSquares 实际上返回一个子类 (GridSquareSubclass[]),此时 JVM 可能还没有加载它,因为它(还)不需要它。
关于java - 调试时如何处理 ClassNotLoadedException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1367730/