-2
votes

Retourner la collection de vecteur vide au lieu de NULL

J'ai une fonction qui renvoie un vecteur et, en cas d'erreur, je souhaite retourner un vecteur vide qui peut être vérifié à l'aide de collections .Peempte par la méthode d'appel. Mais je ne peux pas trouver le moyen de le faire, car les collections fournissent des collections. Fonctions de liste, cartes, etc. mais pas pour le vecteur et je suis obligé de retourner NULL par fonction que je veux éviter.

Comment y parvenir?


8 commentaires

retour Nouveau vecteur (); ?


ou si vous avez un objet, retournez vector.clear ();


Est-ce que CollectionUtils.Sempête de l'aide?


Y a-t-il une raison pour laquelle vous devez retourner un vecteur . Il est probablement préférable que le type de retour soit une liste arbitraire à la place. Avec ce changement, collections.emptyliste () est parfait. Sinon, nouveau vecteur () va bien.


CollectionUtils.Isempty (NULL) revient également vrai, de sorte que toute la façon dont cela importerait peu importe.


Ma fonction appelle un autre service qui renvoie un vecteur et enveloppant une liste autour d'un vecteur semble inutile. Nouveau vecteur () semble la bonne chose.


Javadoc pour vecteur () * construit un vecteur vide pour que son tableau de données interne * ait la taille {@code 10} et son incrément de capacité standard est * zéro.


Personne n'a dit que vous devriez envelopper le vecteur . Un vecteur est a list . Ainsi, lorsque votre code reçoit un , vous pouvez toujours le traiter comme une liste , ce qui vous permet de remplacer null avec collections. videylist () .


3 Réponses :


1
votes

Vous pouvez retourner un nouveau vecteur () , mais une meilleure solution serait de s'éloigner du vecteur qui a été obsolète pour (de nombreuses) années. Sauf si vous avez besoin de fonctionnalités de concurrence, vous pouvez utiliser un ArrayList à la place.

Vous avez ajouté que vous recevez le vecteur d'un service tiers. N'oubliez pas qu'un vecteur est une liste , vous pouvez donc utiliser quelque chose comme ceci: xxx


2 commentaires

Je suis dépendant du vecteur alors que je fais des appels à un service hérité qui retourne uniquement vecteur. nouveau vecteur () semble juste.


@adimoh Le fait que le service retourne a vecteur ne vous empêche pas d'utiliser list . Ce serait différent, si le service exigeait un vecteur est entré.



0
votes

Je veux retourner un vecteur vide qui peut être vérifié en utilisant Collections.Isempty

Voulez-vous retourner un vecteur vide ou voulez-vous des collections.Impty () de retourner vrai lorsqu'il est passé un vecteur vide?
Généralement, le retour d'un vecteur vide n'indiquerait aucune erreur, mais un résultat vide - vous devez envisager de lancer une exception (cochée) sur une erreur - qui rendra le contrat entre la méthode et son appelant plus clair. Si, à une date ultérieure, vous souhaitez que la méthode puisse retourner un vecteur vide pour indiquer un résultat vide (et aucune erreur), vous pourrez sans changer tout le code d'appel.


0 commentaires

-1
votes

Vous ne pouvez pas utiliser sa propre méthode? XXX


0 commentaires