如何在Java中检查成员变量是否为带有反射的Map



我知道我可以使用

来检查List
 Collection.class.isAssignableFrom(field.getType()) 

但是我如何检查类中的字段是否是Map的实现?

    void myMethod(Class<?> classToCheck) {
        Field[] fields = classToCheck.getDeclaredFields();
        for(Field field:fields) {
           // check if field implements Map<?,?>
        }
    }

您可以使用Field#getType()方法,该方法将返回字段的Class<?>

for(Field field:fields) {
    Class<?> clazz = field.getType();
    boolean isItAMap = Map.class.isAssignableFrom(clazz);
}

您可以尝试使用:

Map.class.isAssignableFrom(field.getType())

相关内容

  • 没有找到相关文章

最新更新