【发布时间】:2018-05-21 17:19:37
【问题描述】:
假设你有这个变量:
Class<? extends AssetKey<?>> assetKeyClass;
那么我只能将assetKeyClass 设置为AssetKey 的子类类型。有没有办法做到这一点,并且允许 AssetKey 类类型本身?
像这样:
// Subclass
assetKeyClass = TextureKey.class;
// Class
assetKeyClass = AssetKey.class;
编辑: 忘记显示一些类代码:
public class AssetKey<T> {
// ...
}
public class TextureKey extends AssetKey<Texture> {
// ...
}
【问题讨论】:
-
试试
Class<? extends AssetKey>。您将收到有关使用原始类型的警告,但这是 AFAIK 唯一可能的方法。 -
Eclipse 会发出警告,但 Intellij 不会发出警告。嗯。天哪,你是对的!它有效,但我不知道为什么。
标签: java generics wildcard extends