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 回答