Sto cercando di utilizzare la reflection per determinare se un passato in classe implementa un'interfaccia IsWdidget
:Come determinare se una classe Java implementa una particolare interfaccia
public boolean isAWidget(Class<?> clzz) {
Class<?> runtimeClass = ClassLoader.getSystemClassLoader().loadClass(clzz.getName());
Class<?>[] impls = runtimeClass.getInterfaces();
for(Class<?> clz : impls)
if(clz.getName().equals(IsWidget.class.getName()))
return true;
return false;
}
È questo il modo migliore/più efficiente di determinare questo? Vedo anche un metodo di IsWidget.class.isAssignableFrom(Class<?>)
...
Questo funziona, ma in realtà abusa del punto di utilizzare un blocco try/catch. Inoltre, l'eccezione generata renderà la chiamata più costosa di quella che deve essere (anche se non sono sicuro di quanto sarebbe più efficiente utilizzare la reflection per determinare l'interfaccia di implementazione) –