Ну, для краткости, вы не можете.
Однако вы можете получить значение <?>
при использовании FloatFoo
.
Действительно, насколько я помню, дженерики не хранятся в информации о классе.
однако, когда вы создаете подтип (будь то класс или интерфейс) универсального типа, информация об универсальных файлах должна быть запомнена, поскольку она может определять некоторые сигнатуры методов подтипа.
Например, если ваш Foo
интерфейс объявлен так:
public interface Foo<T> {
public T doIt();
}
Имея
public interface FloatFoo extends Foo<Float>
подразумевает, что этот интерфейс имеет
public Float doIt();
метод объявлен.
Для этого у компилятора должна быть информация о типе. И эта информация будет отражена в API отражения благодаря тому, что суперкласс FloatFoo
будет иметь некоторые параметры Type, связанные с ним. Или, по крайней мере, это то, что я помню из тех немногих случаев, с которыми я сталкивался (или разрабатывал их, поскольку иногда это может быть обязательным)
Но у вас будет гораздо более полная информация на FAQ по дженерикам от Angelika .