Ich denke nicht viel darüber nach, also könnte diese Frage offensichtlich sein. Für z.B. Ich habe eine Klasse:
%Vor% Ich versuche zu überprüfen, ob das Feld contents
eine Instanz von Byte-Array ist. Was ich versucht habe:
Die Ausgabe dieses Codes lautet: class [B
. Ich sehe, dass Byte-Array gefunden wird, aber wenn ich das tue:
Diese Bedingung ist niemals true
. Warum das? Und wie überprüft man, ob das Objekt Felder vom Typ byte[]
enthält?
array instanceof byte[]
überprüft, ob array
ein Objekt vom Typ byte[]
ist. Aber in Ihrem Fall array
ist kein byte[]
, es ist ein Objekt vom Typ Class
, das byte[]
darstellt.
Sie können auf eine Class
zugreifen, die einen Typ T
als T.class
darstellt. Daher benötigen Sie folgende Überprüfung:
Wenn das Array nur eine Klasse ist, wird instanceof Class
wahr sein.
Wenn Sie den Typ eines Felds überprüfen möchten, können Sie
verwenden %Vor%Siehe dieses nützliche Tutorial von Oracle
Array-Typen können durch Aufrufen von Class.isArray ()
identifiziert werden
Tags und Links java reflection