Si por casualidad usted conoce ConsumingHandler
es la única interfaz AtomEntryHandler
implementa y por casualidad usted conoce sólo se necesita un argumento de tipo, se puede hacer esto:
interface ConsumingHandler<T> {}
class AtomEntry {}
class AtomEntryHandler implements ConsumingHandler<AtomEntry>
{
public static void main(String[] args)
{
Type[] interfaces = AtomEntryHandler.class.getGenericInterfaces();
ParameterizedType firstInterface = (ParameterizedType) interfaces[0];
Class c = (Class) firstInterface.getActualTypeArguments()[0];
System.out.println(c.getName()); // prints "AtomEntry"
}
}
De lo contrario, puede hurgar en getGenericInterfaces()
y su actualTypeArguments
hasta que encuentre algo que se parece a lo que está buscando.
Pero si necesita hacer esto en código real, o bien algo probablemente salió mal en su diseño, o está escribiendo una biblioteca de objetos falsos de genio loco y no debería necesitar que respondamos a estas preguntas.
¿Dijo tu amigo cómo? –
no, de ahí la pregunta :-D – ekj
¿La respuesta de Alex Gitelman funciona para usted? –