Bene, in breve, non è possibile.
Tuttavia, ciò che si può fare è ottenere il valore di <?>
quando si utilizza FloatFoo
.
In effetti, da quello che ricordo, i farmaci generici non sono tenuti in informazioni di classe.
tuttavia, quando si crea un sottotipo (sia esso di classe o di interfaccia) di un tipo generico, le informazioni generiche devono essere memorizzate in quanto possono definire alcuni dei metodi di firma del sottotipo.
Per fare un esempio, se il vostro Foo
interfaceis dichiarato come:
public interface Foo<T> {
public T doIt();
}
Avere un
public interface FloatFoo extends Foo<Float>
implica questa interfaccia ha un metodo
public Float doIt();
dichiarato.
Per questo, il compilatore deve avere le informazioni sul tipo. E queste informazioni si rifletteranno nell'API di riflessione dal fatto che alla super classe FloatFoo
saranno associati alcuni parametri Tipo. O almeno è quello che ricordo dai pochi casi che ho riscontrato in questi casi (o li ho elaborati, poiché a volte può essere obbligatorio)
Ma avrai informazioni molto più complete allo Angelika's generics FAQ.
Foo è la tua interfaccia? Sei in grado di implementare metodi aggiuntivi? – Arne
Sì, ci ho pensato: un metodo 'getType()' avrebbe risolto il problema. Probabilmente finirò con una soluzione come questa. – mik01aj