2010-11-22 5 views

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?

+2

Pourquoi n'est-ce pas idéal? – Konerak

+3

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

+1

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

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