Über Java: Holen Sie sich "String []. class" aus "String.class". Was ist, wenn "String.class" ein "Laufzeit-Typ" ist? [Duplikat]
Diese Frage hat hier bereits eine Antwort:
Abrufen der Array-Klasse eines Komponententyps 4 AntwortenHier ist eine VariableClass<?> cls
, jetzt will ich noch eins bekommenArray Class Object
welcher Komponententyp istcls
.
Zum Beispiel, wenncls
=String.class
, Ich möchte bekommenString[].class
; obcls
=int.class
, Ich möchte bekommenint[].class
, was soll ich machen?
Sie sehen, es ist ganz einfach zu bekommenString.class
vonString[].class
:
Class<?> arrayCls = String[].class;
if(arrayCls.isArray()){
Class<?> cls = arrayCls.getComponentType();
}
Aber ich finde keinen einfachen Weg, das Gegenteil zu tun.
Hier ist eine mögliche Lösung:
Class<?> clazz = String.class;
Class<?> arrayClass = Array.newInstance(clazz,0).getClass();
Gibt es eine Möglichkeit, dies bitte zu tun?