为什么不用 java.util.List 检查 java.lang.reflect.Field 的实例

Why not check instance of java.lang.reflect.Field with java.util.List

我想检查字段类型是否为 List,但出现错误:

Incompatible conditional operand types Class<capture#5-of ?> and 
     List
- Incompatible conditional operand types Class<capture#6-of ?> and 
     List

我该如何解决这个问题?

private void convert(Class<?> load) {

        Field[] fields = load.getDeclaredFields();
        int i = 0;
        for (Field field : fields) {
            Class<?> type = field.getType();
            if (type instanceof java.util.List) {
            }
        }
    }
private void convert(Class<?> load) {

    Field[] fields = load.getDeclaredFields();
    int i = 0;
    for (Field field : fields) {
        Class<?> type = field.getType();
        if (java.util.List.class.isAssignableFrom(type)) {
        }
    }
}

instanceof 运算符仅用于实例!

如果希望字段的声明类型java.util.List完全匹配,可以使用表达式field.getType()==java.util.List.class进行测试

仍然,该字段的 null 或实现列表 interface 的具体 class 的实例。