我没有做太多反思,所以这个问题可能很明显。例如,我有一堂课:
public class Document {
private String someStr;
private byte[] contents;
//Getters and setters
}
我正在尝试检查该字段contents
是否是字节数组的实例。我尝试了什么:
Class clazz = Document.class;
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
if (field.getType().isArray()) {
Object array = field.getType();
System.out.println(array);
}
}
这段代码的输出是:class [B
. 我看到找到了字节数组,但如果我这样做:
if (array instanceof byte[]) {...}
这种情况永远不会true
。这是为什么?以及如何检查对象是否包含类型为的字段byte[]
?