下面是问题的视觉效果:
从视觉上可以看出,ide显示了一个编译时错误,它不允许 class
插入Map。
以下是简化版本:
@Override
public <T extends Comparable> void transactPersistentEntityStore(...) {
Map<Class<T>, ComparableBinding> propertyTypeMap = new HashMap<>();
propertyTypeMap.put(EmbeddedArrayIterable.class, EmbeddedEntityBinding.BINDING);
propertyTypeMap.put(EmbeddedEntityIterable.class, EmbeddedEntityBinding.BINDING);
// ...
}
即使两者都是 EmbeddedArrayIterable
以及 EmbeddedEntityIterable
工具 Comparable
我是不是在泛型上遗漏了什么或者误解了什么?
1条答案
按热度按时间js4nwp541#
您可以将问题点简化为以下代码段:
甚至是这样:
带变量的行
x2Class
在这些方法中有一个错误。这是因为编译器丢弃了泛型,因此在运行时没有类型t。t是不可补偿的。无法在运行时获取类型t。请看这篇文章:为什么以下类型在java中是可修改的和不可修改的?