私は熟考をあまりしないので、この質問は明らかかもしれません。たとえば、クラスがあります:
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[]
?