2013-01-31 15 views

risposta

9

Utilizzando Reflection è possibile richiamare il metodo Class.getInterfaces() che restituisce uno Array of Interfaces implementato dalla classe.

System.out.println(list.getClass().getInterfaces()[0]); 

per ottenere solo il nome

System.out.println(list.getClass().getInterfaces()[0].getSimpleName); 
+2

Si consiglia inoltre di ricorsione sulle interfacce estese da queste interfacce. – Guillaume

+0

@Guillaume buon punto, sarebbe un ordine di implementazione di classe, per esempio l'interfaccia [0] sarebbe java.util.List e l'interfaccia [1] sarebbe java.util.RandomAccess – PermGenError

+0

E se si desidera ottenere l'interfaccia di raccolta si ha chiamare getInterface() sulle interfacce restituite dalla prima chiamata. – Guillaume

2
Class aClass = ... //obtain Class object. 
Class[] interfaces = aClass.getInterfaces(); 
Problemi correlati