我有一个静态方法,它将根据类的类型返回自定义类型,
public class GenericMethod {
public static <T> T returnGeneric(Class<T> clazz) {
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我想传递一个带有泛型类的类,
CustomType<String> type = GenericMethod.returnGeneric(CustomType.class);
Run Code Online (Sandbox Code Playgroud)
唯一的问题是上面的语句给出和取消选中转换警告.
我尝试了解决new CustomType<String>().getName()问题的解决方法.
有没有正确的方法,或唯一的解决方案是使用@SuppressWarnings?
您想要/应该尝试的是:
CustomType<String> type = GenericMethod.returnGeneric(CustomType<String>.class);
Run Code Online (Sandbox Code Playgroud)
CustomType<A>.class不幸的是,由于类型擦除,和之间没有区别CustomType<B>.class,因此 Java 不支持这种语法。
所以我的 $.02:你所要求的是不可能的,所以坚持@suppresswarnings...