4

の代わりに何を置きますか??? 次のコードで動作しますか?

import java.util.List;

public class Generic {

    private static class Foo<T> {
        Foo(Class<T> clazz) {
            assert clazz != null;
        }
    }

    public static void main(String[] args) {
        Class<List<String>> x = ???;
        Foo<List<String>> t = new Foo<List<String>>(x);
    }

}
4

2 に答える 2

6

私は行きます:

@SuppressWarnings("unchecked")
Class<List<String>> klass = (Class<List<String>>)((Class<?>) List.class);

また、このタイプのキャストにはクラスのインスタンスは必要ありません。

于 2012-10-24T14:45:06.470 に答える
1

実行時に、ジェネリック型が消去されるため、すべてのList「クラス」は同等です

Class<List<String>> x = (Class<List<String>>) (Class) List.class;
于 2012-10-24T14:36:15.863 に答える