java - 确定一个类是否在 Java 中实现了一个接口(interface)

标签 java reflection

我有一个 Class 对象。我想确定 Class 对象所代表的类型是否实现了特定的接口(interface)。我想知道这是如何实现的?

我有以下代码。基本上它所做的是获取指定包中所有类的数组。然后我想遍历数组并将实现接口(interface)的 Class 对象添加到我的 map 中。问题是 isInstance() 将对象作为参数。我无法实例化接口(interface)。所以我对此有点不知所措。有什么想法吗?

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)) {
    ...
}

关于java - 确定一个类是否在 Java 中实现了一个接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12145185/

相关文章:

java - 如何执行已上传的类的方法?

c# - 如何在类级别从 PropertyInfo 获取 DataContract 属性?

reflection - F# 类型提供程序引用自定义类型

java - 从其他类创建私有(private)内部类的对象

java - 'java.lang.NullPointerException' 错误的未知来源

java - 使用 Hibernate 多对多连接表中再添加一列

java - 枚举的每个成员的内部类?

Java:当方法明显存在时带有反射的NoSuchMethodException

java - 为什么 eclipse 强制我使用 final ?

java - 如何向 Wink 客户端注册 Jackson 提供程序?