![](/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.