如何使用也键入的类型参数创建java.lang.Class?

Mar*_*ila 4 java generics

该怎么做?在下面的代码中,它会工作吗?

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);
    }

}
Run Code Online (Sandbox Code Playgroud)

Edw*_*rzo 6

我会去:

@SuppressWarnings("unchecked")
Class<List<String>> klass = (Class<List<String>>)((Class<?>) List.class);
Run Code Online (Sandbox Code Playgroud)

并且您不需要此类类型的强制类的实例.