为什么不用 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 的实例。
我想检查字段类型是否为 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 的实例。