Android Class.getGenericSuperclass返回java.lang.Object

时间:2011-06-08 09:00:45

标签: android generics reflection superclass

我正在尝试从类中读取通用信息。这是我正在做的事情:首先我有一个类EntityHelper。在其中的某个地方,我想看看实际上是什么T. 我知道这可以通过以下方式完成:

(Class<T>) ((ParameterizedType)getClass().getGenericSuperclass()).getActualTypeArguments()[0];

但是getGenericSuperClass返回的方法是java.lang.Object - 这是不正确的,因为我知道T是其他东西,例如DummyEntity。

我使用的Android平台是7.这是某种错误还是我遗漏了一些重要的东西?

1 个答案:

答案 0 :(得分:-3)

您无法获取参数的泛型类型。泛型使用称为type erasure的技术实现。实现此效果的唯一方法是保存Class<T>类型(即 使用Class Literals as Runtime-Type Tokens)。