注: 純粋に好奇心からであり、実際の使用例ではありません。
Class
Class
有効な型パラメーターを使用してオブジェクトを宣言する方法があるかどうか疑問に思っています。
Class cc1 = Class.class; //raw type
Class<Class> cc2 = Class.class; //now parameter is raw type
Class<Class<?>> cc3 = Class.class; //compile error: inconvertible types
Class
とが交換可能である場合Class<?>
、なぜ交換可能ではClass<Class>
ないのClass<Class<?>>
ですか?
編集:質問は、ネストされた生の型パラメーターの問題に一般化できます。例えば:
ArrayList<ArrayList<?>> lst = new ArrayList<ArrayList>(); //same compile error
EDIT2:質問を少し言い換える必要があります:私はそれを知っています
Class<?> c = Class.class;
Class<Class>
は有効ですが、なぜ同じではないのか疑問に思っていますClass<Class<?>>