Non faccio molta riflessione, quindi questa domanda potrebbe essere ovvia. Ad es. Ho una classe:Controlla se java.lang.reflect.Field type è un array di byte
public class Document {
private String someStr;
private byte[] contents;
//Getters and setters
}
Sto cercando di verificare se il campo contents
è un esempio di array di byte. Quello che ho provato:
Class clazz = Document.class;
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
if (field.getType().isArray()) {
Object array = field.getType();
System.out.println(array);
}
}
L'uscita di questo codice è: class [B
. Vedo che array di byte viene trovato, ma se lo faccio:
if (array instanceof byte[]) {...}
questa condizione è mai true
. Perché? E come verificare se l'oggetto contiene campi che sono di tipo byte[]
?
Grazie, ora ho capito :) –