gpt4 book ai didi

java - 在反编译的 java 类文件中强制转换为 Null

转载 作者:行者123 更新时间:2023-11-29 04:16:19 24 4
gpt4 key购买 nike

我反编译了我的一个 java .class 文件并看到了这行代码

new ResponseModel("Reset Complete", false, (LinkedHashMap)null)

行对应

new ResponseModel("Reset Complete", false, null);

为什么要强制转换 null 参数?是否只是我的反编译器提示了参数类型?

最佳答案

假设您重载了一个方法:

public class Foo {

public void something (String s) { ... }
public void something (List l) { ... }
}

使用null 参数调用something 现在不明确。要将调用绑定(bind)到任一方法,您需要强制转换空值,为其指定类型:

new Foo().something((String)null);
new Foo().something((List)null);

由于此类在运行时可能与编译时不同(在编译时,该方法可能未重载,但在运行时该类是具有重载方法的较新版本),编译器在字节码中使其显式以防止以后出现歧义。

关于java - 在反编译的 java 类文件中强制转换为 Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52146736/

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