私はジェネリックスで常に苦労しています。どうしてこのことが狂っているのか分かりません。私は何度か持っている古い問題があります。 ない作業を行いジェネリックスとクラスで苦闘
class Father {
...
}
class Child1 extends Father {
...
}
class Child2 extends Father {
...
}
public class TestClass {
private static Class<? extends Father>[] myNiceClasses = new Class<? extends Father>[] {
Child1.class,
Child2.class
}
}
。
Cannot create a generic array of Class<? extends Father>
Iは
private static Class<Father>[] myNiceClasses = new Class<Father>[] {
に(不良)アレイ線を変更すると、同じエラーメッセージが表示されるだけでなく、このメッセージが追加された:
Type mismatch: cannot convert from Class<Child1> to Class<Father>
コンパイラは、このような文句唯一の作業バージョンは次の行です:
private static Class<?>[] myNiceClasses = new Class<?>[] {
あなたは簡単にキャストすることができないので、この解決策は満足いくものではありません。
私の質問は:どのようにこの問題を解決するには?私の脳の結び目はどこですか?
+1。コレクションではなく配列でジェネリックを使用します。 – seanmonstar