Une méthode renvoie un Object
ou un Object[]
de type String
mais si je transtypage avec String[]
, il donne une exception de type cast s'il contient une chaîne unique. Comment puis-je résoudre ça? Est-il possible de vérifier s'il contient String
ou String[]
?Comment vérifier si un objet est une chaîne ou un tableau de chaînes dans Java?
8
A
Répondre
18
Bien sûr, utilisez le instanceof
operator:
if (x instanceof String) {
...
}
if (x instanceof String[]) {
...
}
etc. Ce n'est pas idéal d'avoir à faire cela, vous l'esprit ... est-il possible que vous pouvez remodeler votre API pour éviter cela?
7
Réécrivez la méthode pour toujours retourner String[]
, même s'il n'y en a qu'une seule.
Mieux encore, il faut retourner List<String>
et utiliser Collections.singletonList()
pour le cas d'un seul élément.
Questions connexes
- 1. Comment vérifier Un tableau de chaînes contient une chaîne particulière?
- 2. vérifier si une chaîne est un double
- 3. Vérifier la chaîne pour voir si une chaîne dans un tableau de chaînes s'y trouve
- 4. Comment vérifier si un objet est nul
- 5. Comment vérifier si un objet est défini?
- 6. Comment vérifier si un objet est nul
- 7. Comment vérifier si un objet n'est pas un tableau?
- 8. Comment vérifier si un objet contient un tableau d'octets?
- 9. Comment vérifier si un objet est une instance de 'fichier'?
- 10. Vérifier si un argument une chaîne
- 11. ruby façon de vérifier si un objet est dans un tableau
- 12. Comment vérifier si un tableau est dans un format spécifique
- 13. Pour vérifier si un objet est vide ou non
- 14. vérifier une chaîne si avoir un mot
- 15. Vérifiez si un objet dans un tableau 2d est nul
- 16. Comment vérifier si un objet existe dans un NSMutableArray
- 17. Comment vérifier si une variable est un objet jQuery ou un élément DOM simple?
- 18. Rechercher si une chaîne est présente dans un tableau
- 19. Comment vérifier si un caractère Java est un symbole monétaire
- 20. convertir la chaîne JSON dans un tableau ou un objet
- 21. vérifier si un tableau est multidimensionnel
- 22. Vérifier si un objet appartient à une classe en Java
- 23. Comment vérifier si * nombre * est dans un tableau
- 24. Comment vérifier une chaîne si elle est ASCII ou non?
- 25. PHP: vérifier si objet/tableau est une référence
- 26. Javascript: Vérifier si un objet n'a pas de propriétés ou si est vide
- 27. Déterminer si un pointeur reçu est une chaîne, ushort ou un tableau
- 28. Rechercher un tableau de chaînes en Java?
- 29. Comment vérifier si un tableau est vide en PHP?
- 30. Java vérifier si BufferedImage est un GIF
Pourquoi n'est-ce pas idéal? – Konerak
En raison de problèmes d'orientation de l'objet. Le fait même d'utiliser 'instanceof' équivaut, dans ce cas, à dire" ma méthode aurait pu renvoyer 'String []' dans tous les cas (comme un 'String' peut toujours être placé dans un' String [1] ') , mais comme je n'étais pas assez intelligent pour le faire, j'ai préféré retourner n'importe quoi et vous laisser faire. " – Riduidel
La méthode la plus simple pour modifier l'API consiste à toujours renvoyer une chaîne [], au lieu de la chaîne Chaîne [] de taille 1. – extraneon