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 に答える