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

时间:2014-07-22 11:36:11

标签: java reflection

我知道我可以使用

检查列表
 Collection.class.isAssignableFrom(field.getType()) 

但是如何检查类中的Field是否是Map的实现?

    void myMethod(Class<?> classToCheck) {
        Field[] fields = classToCheck.getDeclaredFields();

        for(Field field:fields) {
           // check if field implements Map<?,?>
        }
    }

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

您可以尝试使用:

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