![](/img/trans.png)
[英]Does Java guarantee that Object.getClass() == Object.getClass()?
[英]What magic makes object.getClass() in Java return a typed Class instance?
在Java中, Object.getClass
具有public final Class<?> getClass()
的類型簽名,但是JavaDoc注釋提到它實際上是“ Class<? extends |X|>
其中| X |是靜態的擦除” getClass
被稱為的表達式的類型“。
這確實是這種情況並由IDE支持的編譯器執行:s等,但是有什么神奇之處呢? 編譯器是否以特殊方式處理此方法? 它是否實際為每種類型生成了getClass()
的覆蓋?
我知道這只是一個編譯時構造,在運行時它不會對Class的泛型類型參數有什么影響。
是的,編譯器會特別處理該方法。 例如,請參閱Scope類中Eclipse編譯器中對createGetClassMethod()
調用。 (在同一個類中還有一些其他調用此方法。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.