Ecco una variabile Class<?> cls
, ora voglio ottenere un altro Array Class Object
quale tipo di componente è cls
.su java: ottieni `String []. Class` da` String.class`, cosa succede se `String.class` è un" tipo di runtime "?
Ad esempio, se cls
= String.class
, voglio ottenere String[].class
; se cls
= int.class
, voglio ottenere int[].class
, cosa devo fare?
Vedete, è abbastanza facile da ottenere String.class
da String[].class
:
Class<?> arrayCls = String[].class;
if(arrayCls.isArray()){
Class<?> cls = arrayCls.getComponentType();
}
Ma non riesco a trovare modo semplice di fare il contrario. ci
Class<?> clazz = String.class;
Class<?> arrayClass = Array.newInstance(clazz,0).getClass();
è alcun modo la pastella per fare questo per favore:
Ecco una possibile soluzione?
Cosa c'è di sbagliato in questa soluzione? – Thilo
@Thilo La soluzione è il risultato della mia ipotesi. Funziona bene, ma non sono sicuro se questo è il modo migliore. Questa soluzione deve creare dinamicamente un'entità dell'array la cui lunghezza è 0. – watchzerg
Interessante domanda. Sei curioso di sapere perché hai bisogno dell'array 'Class' object? –