Ich mache nicht viel von der Reflexion, so dass diese Frage offensichtlich sein könnte. Für z.B. Ich habe eine Klasse:Überprüfen Sie, ob java.lang.reflect.Field Typ ein Byte-Array ist
public class Document {
private String someStr;
private byte[] contents;
//Getters and setters
}
ich zu überprüfen, ich versuche, wenn das Feld contents
eine Instanz von Byte-Array ist. Was ich versucht:
Class clazz = Document.class;
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
if (field.getType().isArray()) {
Object array = field.getType();
System.out.println(array);
}
}
Der Ausgang dieses Codes ist: class [B
. Ich sehe, dass Byte-Array gefunden wird, aber wenn ich tun:
if (array instanceof byte[]) {...}
Diese Bedingung ist nie true
. Warum das? Und wie überprüft man, ob das Objekt Felder vom Typ byte[]
enthält?
Danke, jetzt bekomme ich es :) –