调试时如何处理ClassNotLoadedException?

因此,我(远程)在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:

Type has not been loaded occurred while retrieving component type of array.

…谁知道这是怎么回事?

回答:

基本上,这意味着类加载器尚未加载GridSquare

[]类。话虽如此,这听起来像是调试器中的一个错误。断点与代码的关联似乎已被破坏。您需要重新编译以使行号同步,或者发生其他问题。此时,在代码中(分配之后)需要将其加载。除非getSquares实际上返回一个子类(GridSquareSubclass

[]),否则JVM可能尚未加载该子类,因为它尚不需要(尚未)。

以上是 调试时如何处理ClassNotLoadedException? 的全部内容, 来源链接: utcz.com/qa/405287.html

回到顶部