0

我有一个界面如下:

public interface ImportedEntity<T extends ImportedEntity<T, E>, E extends Enum<E>>

我想要一个具有该接口上限的类:

Class<ImportedEntity<?, ?>> c = ImportedEntity.class;
Class<ImportedEntity<?, ?>> c = ImportedEntitySubclass.class;

由于通配符,这些显然无法编译,但就我应该放什么而不是通配符以使其编译而言,我的头快要爆炸了。

最糟糕的是我可以使用原始类型,但我觉得如果我这样做我会在某个地方出错。

4

1 回答 1

2

您可以像这样在右侧添加未经检查的演员表:

Class<ImportedEntity<?, ?>> c = (Class<ImportedEntity<?, ?>>) ImportedEntity.class;
Class<ImportedEntity<?, ?>> c = (Class<ImportedEntity<?, ?>>) ImportedEntitySubclass.class;

恐怕您将不得不在某个地方class进行未经检查的演员表并接受警告,因为该属性无法保存类型信息。

于 2012-11-09T11:12:30.023 回答