Android Class.getGenericSuperclass возвращает java.lang.Object - PullRequest
2 голосов
/ 08 июня 2011

Я пытаюсь прочитать общую информацию из класса. Вот что я делаю: в первую очередь у меня есть класс EntityHelper. Где-то внутри я хочу увидеть, что на самом деле это Т. Я знаю, что это можно сделать с помощью:

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

но метод getGenericSuperClass возвращает java.lang.Object, что неверно, поскольку я знаю, что T - это что-то другое, например, DummyEntity.

Платформа Android, которую я использую, - 7. Это какая-то ошибка или я упускаю что-то важное?

1 Ответ

0 голосов
/ 08 июня 2011

Вы не можете получить универсальный тип аргумента.Дженерики реализованы с использованием техники, называемой Тип стирания .Единственный способ добиться этого эффекта - сохранить тип Class<T> (т.е. использовать литералы класса в качестве токенов типа времени выполнения ).

...