Nie robię wiele refleksji, więc to pytanie może być oczywiste. Dla np. Mam klasy:Sprawdź, czy typ java.lang.reflect.Field jest tablicą bajtów
public class Document {
private String someStr;
private byte[] contents;
//Getters and setters
}
próbuję sprawdzić czy pole contents
jest instancją tablicy bajtów. Co próbowałem:
Class clazz = Document.class;
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
if (field.getType().isArray()) {
Object array = field.getType();
System.out.println(array);
}
}
Dane wyjściowe tego kodu: class [B
. Widzę, że tablica bajtów zostanie znaleziony, ale jeśli to zrobię:
if (array instanceof byte[]) {...}
Warunek ten nigdy true
jest. Dlaczego? A jak sprawdzić, czy obiekt zawiera pola typu byte[]
?
Dzięki, teraz rozumiem :) –