gpt4 book ai didi

java - 为什么调用类的静态变量时会抛出NoClassDefFoundError?

转载 作者:行者123 更新时间:2023-11-30 04:46:07 27 4
gpt4 key购买 nike

try {
MyClass[] myClass = cProxy.getMyClass();
return "" + myClass[0];
} catch (Exception e) {
// nothing to do
}
return "" + MyClass.UNKNOWN; <-- NoClassDefFoundError thrown

我从其他对象中获取了 MyClass 对象,我只是想知道为什么而不是 line

MyClass[] myClass = cProxy.getMyClass();

调用MyClass类的静态变量“MyClass.UNKNOWN”时是否抛出异常?

NoClassDefFoundError 和 ClassNotFoundException 的深层含义是什么?谢谢

最佳答案

以下是关于这两个异常的 java 文档的摘录。

NoClassDefFoundError:如果 Java 虚拟机或 ClassLoader 实例尝试加载类的定义(作为普通方法调用的一部分或作为使用 new 表达式创建新实例的一部分)并且找不到该类的定义,则抛出此异常。搜索到的类定义在编译当前执行的类时就已经存在,但再也找不到该定义了。

ClassNotFoundException:当应用程序尝试通过其字符串名称加载类时抛出:• Class 类中的forName 方法。• 类ClassLoader 中的findSystemClass 方法。• 类ClassLoader 中的loadClass 方法。但找不到具有指定名称的类的定义。

关于java - 为什么调用类的静态变量时会抛出NoClassDefFoundError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10910203/

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