我正在尝试使用反射来确定传入的类是否实现IsWdidget接口:
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; }
这是确定最佳/最有效的方法吗?我也看到一个IsWidget.class.isAssignableFrom(Class<?>)方法…
解决方法
我将使用
isAssignableFrom
方法来确定IsWidget是否是超级接口:
return IsWidget.class.isAssignableFrom(clzz);
引用上面链接的Javadoc:
Determines if the class or interface represented by this Class object is either the same as,or is a superclass or superinterface of,the class or interface represented by the specified Class parameter.