获得返回泛型类的可能吗?

ein*_*zig 4 java generics

我想知道方法的泛型返回类型的类,如下所示:

    <T> T getEntry() { System.out.println(T.class) }
Run Code Online (Sandbox Code Playgroud)

问题是,这不是泛型类,这只是一个泛型方法,所以我无法从类中提取泛型类型.我想要实现的是在不需要类的情况下知道调用者想要的具体类型,例如:

<T> T getEntry(Class<?> clazz);
Run Code Online (Sandbox Code Playgroud)

那可能吗?

ein*_*zig 5

好吧,如果Kylar是对的我应该诉诸:

<T> T getEntry(String name, Class<T> clazz)
Run Code Online (Sandbox Code Playgroud)

我想避免额外的争论:(

  • 然而,这取决于你需要什么`Class <T>`for.如果它是例如创建一个`newInstance()`,那么它确实是强制性的.但是如果它只是为了转换`return`值,那么你也可以只做`return(T)值;`而不是`return clazz.cast(value);`和`@SuppressWarnings("unchecked")一起生活`;) (2认同)