IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

La différence entre double et OptionalDouble


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    705
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 705
    Par défaut La différence entre double et OptionalDouble
    Bonjour,

    Je suis en train de découvrir l'API stream, et j'ai découvert certaines méthodes qui retournent un type "OptionalDouble", et il a fallut invoquer la méthode getAsDouble() pour avoir le type double.

    Alors je me demande c'est quoi les points de différences entre double et OptionalDouble

    Merci en avance!

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2013
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 131
    Par défaut
    Salut,

    OptionalDouble vient du meme principe que le Optional standard.
    Il te donne un container de value qui te permet de verifier si ce dernier contient ou non une valeur.

    C'est plus ou moins pour remplacer un code du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Double d = giveMeADoubleValue();
    if (d != null) {
        ....
    }
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    OptionalDouble doubleOpt = giveMeAnOptionalDouble();
    if (doubleOpt.isPresent()) {
       ....
    }

    De plus il te permet toutes sortes de methodes sympathiques de la classe Optional que tu peux utiliser lors d'operations sur les streams.

    Tu peux trouver la liste des methods sur la page API : https://docs.oracle.com/javase/8/doc...nalDouble.html

  3. #3
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Je rajouterais que le getAsDouble() (ou get() de Optional) générera une exception si la valeur est nulle, afin de gérer l'erreur au plus tôt.
    Si on veut éviter cela il faut passer par une des méthodes orElse()...

    L'API des Streams ne renvoi jamais null. Ça permet d'enchaîner les méthodes sans risque de NPE, et Optional vient enrichir cela en "marquant" les méthodes pouvant renvoyer un null...

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo