根据该
getClass方法的Javadoc:
实际结果类型为
Class<? extends |X|>| X |
是擦除其getClass上调用的表达式的静态类型。例如,此代码段中不需要强制转换
在此,
|X|您的代码段中的值为
MyClass,因此
instance.getClass()只能分配给
Class<? extendsMyClass>或
Class<?>。
使用这种特定措辞的原因是因为当您说该变量具有类型T其中where时
<T extendsMyClass>,可以存在多个扩展的类,
MyClass因此能够满足
T extendsMyClass条件。没有运行时信息,就无法知道
MyClass方法中传递了哪个具体的实现子类。因此,为了提供一个通用的解决方案,它会返回,
<?extends MyClass>因为
MyClass无论传入什么类实例,这对于任何子类都适用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)