簡體   English   中英

Null在反編譯的java類文件中生成

[英]Null is casted in decompiled java class file

我反編譯了一個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不明確的 要將調用綁定到任一方法,您需要轉換null值 ,為其指定一個類型:

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

由於此類在運行時可能與編譯時不同 (在編譯時,方法可能不會重載,但在運行時該類是一個具有重載方法的較新版本),編譯器在字節碼中使其顯式化以防止后來模棱兩可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM