在反编译的 java class 文件中转换为 Null
Null is casted in decompiled java class file
我反编译了我的一个 java .class 文件并看到了这行代码
new ResponseModel("Reset Complete", false, (LinkedHashMap)null)
该行对应
new ResponseModel("Reset Complete", false, null);
为什么要转换空参数?难道只是我的反编译器提示了参数类型?
假设您重载了一个方法:
public class Foo {
public void something (String s) { ... }
public void something (List l) { ... }
}
使用 null
参数调用 something
现在 不明确 。
要将调用绑定到任一方法,您需要转换空值,给它一个类型:
new Foo().something((String)null);
new Foo().something((List)null);
As this class may be different at runtime than on compile time(在编译时,该方法可能不会被重载,但在运行时 class 是一个较新的版本,它有一个重载方法),编译器在字节码中使它 显式 以防止以后出现歧义。
我反编译了我的一个 java .class 文件并看到了这行代码
new ResponseModel("Reset Complete", false, (LinkedHashMap)null)
该行对应
new ResponseModel("Reset Complete", false, null);
为什么要转换空参数?难道只是我的反编译器提示了参数类型?
假设您重载了一个方法:
public class Foo {
public void something (String s) { ... }
public void something (List l) { ... }
}
使用 null
参数调用 something
现在 不明确 。
要将调用绑定到任一方法,您需要转换空值,给它一个类型:
new Foo().something((String)null);
new Foo().something((List)null);
As this class may be different at runtime than on compile time(在编译时,该方法可能不会被重载,但在运行时 class 是一个较新的版本,它有一个重载方法),编译器在字节码中使它 显式 以防止以后出现歧义。