Prüfen Sie, ob java.lang.reflektieren.Feld Typ ist ein byte-array

Ich nicht viel tun, von Reflexion, so dass diese Frage mag offensichtlich sein. Z.B. habe ich eine Klasse:

public class Document {

    private String someStr;    

    private byte[] contents;  

    //Getters and setters

}

Ich versuche zu prüfen, ob das Feld contents ist eine Instanz der ByteArray. Was habe 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);
    }
}

Die Ausgabe dieses Codes ist: class [B. Ich sehe, dass byte-array gefunden wird, aber wenn ich das Tue:

if (array instanceof byte[]) {...}

Diese Bedingung ist nie true. Warum ist das so? Und wie um zu überprüfen, ob das Objekt enthält Felder, die den Typ der byte[]?

Schreibe einen Kommentar