首先,我看不到像这样包装Gson有什么用。
对于您的问题,有关泛型类型
T本身的信息在运行时不可用。它已被删除。它仅在编译时可用。您想使用实际类型来对其进行参数化,例如
newTypeToken<List<String>>。
如您所见,由于Java中缺少经过修饰的泛型(不可能执行
T t = newT()),因此Gson本身被迫使用此
TypeToken方法。否则,Gson会以一种更为优雅的方式做到这一点。
为了能够传递实际的类型,您必须重新发明与
TypeToken已经做过的相同的事情。这是没有道理的:)只是重复使用它,或者直接使用Gson而不将其包装在这样的辅助类中。



