- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我今天遇到了一个异常,并设法消除了错误。首先,让我给你一个示例代码。
public class Foo () {
protected String var;
}
public class Bar extends Foo () {
public String isVarNull() {
return (this.var == null);
}
}
这是我的两个示例类。这两个类都位于某个 jar 中。在这种情况下一切正常(想象一下,它们是有用的类,并在一些生产环境中使用)。我现在要做的就是将 Foo
中的 Var
的类型更改为 Integer
。
public class Foo () {
protected Integer var;
}
之后我编译了类 Foo
并用新的替换了 Jar 中的旧类文件。当我现在尝试访问字段 var
时(在类 Bar
的方法 isVarNull()
中)我得到这个异常:
Caused by: java.lang.NoSuchFieldError: test/Bar.var at test.Bar.isVarNull(Bar.java:6)
据我所知,它与 Bar
类的字节码有关。编译类是否“知道”代码中使用的方法/变量的类型?在这种情况下,Bar
是否“知道”var
应该返回什么类型并因此抛出错误,因为方法的返回类型已更改?非常感谢详细的回答!
亲切的问候
最佳答案
我认为这里的最佳答案可能会有所帮助:NoSuchFieldError Java
但为了不过度依赖链接,一般的想法是您可能只编译了 Foo
。因此,Foo
的 var
类型确实发生了变化,但是 Bar
对 var
类型的想法应该不是。所以是的,编译类确实“知道”它们引用的方法/变量的类型。在这种情况下,Bar
仍然认为它正在寻找 Foo
中名为 var
的 String
,但是因为它不能'找不到一个,你会得到这个错误。我认为,同时编译两者应该让您的所有类(class)再次出现在同一页面上。
关于更改类后的 java.lang.NoSuchFieldError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38896755/
我正在尝试更新我正在从2.4.3版开发到2.5.2版的Android应用程序上的Room数据库,这些是我的gradle.build文件中的Room依赖项。该应用程序成功编译和构建,但不幸的是,在运行时
我刚刚升级了一个库,另一个库开始抛出 NoSuchFieldError。如果删除该字段,那会很好。但它留下来了。它只是被弃用了。 Hibernate.TIMESTAMP.nullSafeGet(nul
输出:javap -s SomeClass public org.someapp.SomeClass$_data data; Signature: Lorg/someapp/SomeClass$_
我正在尝试修改我在 ClassA 中创建的 public static final String[] 字段,然后在 ClassB 中使用反射对其进行修改。但是我得到了一个 NoSuchFieldExc
我目前正在摆弄 javassist 并遇到了这个问题。我正在尝试使用 javassist 更改字段类型。但是,当代码在我更改后尝试访问该字段时,结果是 NoSuchFieldException。 所以
我的代码中出现 NoSuchFieldError,现在 oracle 不太清楚为什么会抛出此错误,只是说:如果类的定义发生不兼容的更改,此错误只会在运行时发生。 有人可以向我解释如何“不兼容地改变”一
我有一个 Spring Boot 2 项目。 该模型是 @Entity @SequenceGenerator(name = "climate_gen", sequenceName = "climate
我最近遇到了 Eclipse SWT GUI 应用程序的问题。我试图使用以下代码获取窗口句柄: Display.getDefault().syncExec(()->{ hand
我在初始化 web 应用程序时收到以下错误。有人见过这个吗? 这发生在 spring 尝试加载 SimpleUrlHandlerMapping 的地方 Caused by: java.lang.NoS
启动 NeoServer 时出现以下异常 - Exception in thread "main" java.lang.NoSuchFieldError: cypher_parser_version
网上有一个关于如何在 Hibernate 中使用注释的示例(在此之前我也研究过相同的示例,但它使用了 .xml。并且我已经成功地使其正常工作)。所以现在我有: Initial session fact
这个问题在这里已经有了答案: JNI: NoSuchFieldError (1 个回答) 关闭 9 年前。 我正在创建一个使用 JNI 的 Java 应用程序。 JNI 函数之一接受枚举作为参数。但
与 GEM API 集成时,我在 runtime java.lang.NoSuchFieldError: gostR28147_cbc 处收到错误。请让我知道我缺少什么。我已经包含了以下 jar :
请任何人告诉我如何解决此错误, 我正在使用 spring-webmvc.3.2.17 和 freemarker.2.3.16 Caused by: org.springframework.beans.
我目前正在使用 vscode 和 apache poi,创建了一个程序来自动创建 .xlsx 程序,并让 A1 单元格输入一个名为“Tester”的字符串,然后弹出该错误。 我的程序中的代码: pac
我在使用 Firebase 产品时遇到 java.lang.NoSuchFieldError 错误。 应用程序随机崩溃,每次启动一次,我没有看到任何明显的原因。 Crashlytics 将其识别为两个
我已重新启动服务器,但无法让它运行。我在启动时总是出现此错误。请问有人可以告诉我如何让服务器运行吗? 我已经搜索过,但在其他地方找不到此错误。 HTTP ERROR: 500 STANDARD_IMP
在某些情况下,当从匿名类访问 Activity 字段时,我在运行时收到 NoSuchFieldError:java.lang.NoSuchFieldError: MyActivity.myField
我开发了一个 Spring Boot 应用程序,我试图包含一个 Optional ( java.lang ) 字段在我的一个模型中,所以如果 @RestController我正在使用 with 不会得
我今天遇到了一个异常,并设法消除了错误。首先,让我给你一个示例代码。 public class Foo () { protected String var; } public class Ba
我是一名优秀的程序员,十分优秀!