【发布时间】:2012-10-31 19:34:35
【问题描述】:
我想在 Java 中从 TypeReference<E> 对象转到 Class<E> 对象,没有使用强制转换。由于我的代码使用 Jackson 的方式,我需要使用 TypeReference 并且我需要 Class 对象,因为我想用它来推断我的应用程序中的其他泛型类之一的类型.
我知道TypeReference.getType() 将返回一个java.lang.reflect.Type 对象。基本上,如果我能找到一种方法来使用代码而不用强制转换从Type 到Class,那么我已经找到了我的问题。
Javadoc 参考:
【问题讨论】:
-
Type是一个接口,而不是一个对象,而Class是Object的子类。 -
我知道。但我的问题是如何从
TypeReference转到Class。仅提及Type接口,以防它帮助某人解决问题。 -
Type不是代表没有任何类加载器信息的类型吗?因此,如果它指向类Foo,它可能意味着由不同类加载器加载的任何实际Foo类? -
但从技术上讲,
Class实现了Type接口,所以一个简单的演员应该可以完成这项工作。
标签: java generics casting jackson