在Java语言中,Object.getClass
的类型签名是public final Class<?> getClass()
,但是JavaDoc注释提到它实际上是"Class<? extends |X|>
,其中|X|是调用getClass
的表达式的静态类型的擦除“。
这确实是由编译器强制执行的,并由IDE等支持,但是是什么魔法让它滴答作响呢?编译器是否以特殊的方式处理此方法?它真的会为每种类型生成getClass()
的覆盖吗?
我知道这只是一个编译时构造,在运行时它不会对Class的泛型参数有任何影响。
https://stackoverflow.com/questions/18855347
复制相似问题