确定一个类是否在Java中实现一个接口
我有一个Class对象。 我想确定Class对象表示的types是否实现了特定的接口。 我想知道如何实现这一目标? 
 我有以下代码。 基本上它是获取指定包中的所有类的数组。 然后我想通过数组并添加实现了一个接口到我的地图的类对象。 问题是isInstance()将一个对象作为参数。 我无法实例化一个接口。 所以我对此感到不知所措。 有任何想法吗? 
 Class[] classes = ClassUtils.getClasses(handlersPackage); for(Class clazz : classes) { if(clazz.isInstance(/*Some object*/)) //Need something in this if statement { retVal.put(clazz.getSimpleName(), clazz); } } 
	
 你应该使用isAssignableFrom : 
 if (YourInterface.class.isAssignableFrom(clazz)) { ... } 
你可以使用下面的函数来获得所有实现的接口
 Class[] intfs = clazz.getInterfaces(); 
 您可以使用class.getInterfaces() ,然后检查接口类是否在那里。 
 Class someInterface; // the interface you want to check for Class x; // Class[] interfaces = x.getInterfaces(); for (Class i : interfaces) { if (i.toString().equals(someInterface.toString()) { // if this is true, the class implements the interface you're looking for } } 
你也可以设置实例添加“.class”
 Class[] classes = ClassUtils.getClasses(handlersPackage); for(Class clazz : classes) { if(Interface.class.isAssignableFrom(clazz)) { retVal.put(clazz.getSimpleName(), clazz); } }