簡體   English   中英

什么魔術使Java中的object.getClass()返回一個類型化的Class實例?

[英]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.

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