-1

重複の可能性:
ジェネリックのクラスを取得

私はこれをやろうとしています:

public static<T extends Object> T perform(){
    Class<T> classObject = T.class;
    Class<T> classObjectAgain = T.getClass();
    //...
}

「extendsObject」で.classとgetClass()にアクセスできると思いました...しかし、これはコンパイルされません:「Illegalclasslitteral」

私がそのような操作をどのように実行できるか知っていますか?

4

1 に答える 1

1

Java ジェネリックは型消去によって実装されます (Java 5 でのみ登場したため、この型の実装はレガシー コードをサポートするために選択されました)。

これは、実行時に、すべてのジェネリック型が実際には Object 型であることを意味します。したがって、リフレクションを使用して、実行時にパラメーター化されたオブジェクトに関する情報を取得することはできません。

于 2012-04-17T16:16:19.560 に答える