Comment faire pour convertir l'Objet[] String[] en Java?
J'ai une question à propos de Java. J'ai un Object[] (Java par défaut, pas défini par l'utilisateur) et je veux le convertir en un String[]. Quelqu'un peut-il m'aider? merci.
Note:cela ne fonctionne Que si les objets sont de toutes les Chaînes; son code fonctionne même si elles ne sont pas
forTweak1 :uniquement sur Java 1.6 et au-dessus de
Ayant Object comme un identificateur semble être une mauvaise idée, et le casting vous suggère résultat dans un ClassCastException. Cela ne fonctionne pas: String [] strArr = (String[]) objectArr[]; enlevé ceux [] Une autre question: si l'objet tableau contient les valeurs null, vous aurez une NPE avec cette solution. Mieux vaut aller à l'aide de Chaîne de caractères.valueOf comme je le fais dans ma réponse. String [] strArr = (String[]) objectArr; cela ne fonctionne toujours pas!
Il ne gère pas les entrées en phase nationale, avec un tableau de ce qui pourrait être souvent le cas. Ops. Il devrait être String.valueOf (qu'il avait dans une révision précédente 🙂 corrigé. Merci.
Je pense que c'est la façon la plus simple si toutes les entrées de objectArr sont de Chaîne:
for(int i =0; i < objectArr.length ; i ++){
strArr[i]=(String) objectArr[i];}
donne une classe cast exception si vous avez quelque chose mais les chaînes dans le tableau d'objets... pas si vous suivant mes instructions 🙂 : je pense que c'est la façon la plus simple si toutes les entrées de objectArr sont String: désolé. vous avez raison. mon mauvais.
fourni, strarray est de la longueur objarray.length et objarray contiennent uniquement des chaînes de caractères. Ou de jeter ArrayStoreException. Voir aioobe commentaire.
...et à condition objarray contient uniquement des chaînes... sinon, vous allez courir dans une ArrayStoreException. Grâce aioobe! J'étais sur le point d'éditer mon post.
c'est la conversion
C'est coulée
Mise à jour:
Tweak 1
Tweak2
Note:cela ne fonctionne Que si les objets sont de toutes les Chaînes; son code fonctionne même si elles ne sont pas
forTweak1 :uniquement sur Java 1.6 et au-dessus de
Object
comme un identificateur semble être une mauvaise idée, et le casting vous suggère résultat dans unClassCastException
.Cela ne fonctionne pas: String [] strArr = (String[]) objectArr[];
enlevé ceux []
Une autre question: si l'objet tableau contient les valeurs null, vous aurez une NPE avec cette solution. Mieux vaut aller à l'aide de Chaîne de caractères.valueOf comme je le fais dans ma réponse.
String [] strArr = (String[]) objectArr; cela ne fonctionne toujours pas!
OriginalL'auteur Jigar Joshi
Simplement casting comme ça
String[] strings = (String[]) objectArray;
probablement ne fonctionne pas.Essayer quelque chose comme cela:
Vous pouvez alors utiliser la fonction comme ceci
ou comme ce
Ops. Il devrait être
String.valueOf
(qu'il avait dans une révision précédente 🙂 corrigé. Merci.OriginalL'auteur aioobe
Je pense que c'est la façon la plus simple si toutes les entrées de objectArr sont de Chaîne:
pas si vous suivant mes instructions 🙂 : je pense que c'est la façon la plus simple si toutes les entrées de objectArr sont String:
désolé. vous avez raison. mon mauvais.
OriginalL'auteur nanda
Je suppose que vous pourriez aussi utiliser Système.arraycopy
fourni,
strarray
est de la longueurobjarray.length
et objarray contiennent uniquement des chaînes de caractères. Ou de jeter ArrayStoreException. Voir aioobe commentaire.Grâce aioobe! J'étais sur le point d'éditer mon post.
OriginalL'auteur bdhar