Определите, реализует ли класс интерфейс в Java


у меня есть

4 69

4 ответа:

вы должны использовать 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[] classes = ClassUtils.getClasses(handlersPackage);
for(Class clazz : classes)
{
    if(Interface.class.isAssignableFrom(clazz))
    {
        retVal.put(clazz.getSimpleName(), clazz);
    }
}