Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: Java
Expertise: Intermediate
Aug 14, 2017



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Understanding Optional

Optional makes it easier in cases where the result is not really needed. This example can be fine-tuned as needed to explore all of the methods supported.

import java.util.Optional;

public class JavaOptional 
   public static void main(String args[])
      JavaOptional javaOptional = new JavaOptional();

     final String defaultNum = "25";

     //You can pass null when the argument is not provided. Take care of handling it in the next line :)
     String firstArg = args.length  0 ? args[0] : null;
      Integer firstInt = Integer.parseInt(firstArg);

     String secondArg = args.length  1 ? args[1] : defaultNum;
      Integer secondInt = Integer.parseInt(secondArg);
      //Optional.ofNullable - The parameter passed can be null also.
      Optional firstNum = Optional.ofNullable(firstInt);
      //Optional.of - a value is must. This will throw NullPointerException is null is passed
      Optional secondNum = Optional.of(secondInt);

   public Integer sum(Optional firstNum, Optional secondNum)
     //isPresent() returns true is the value exists and false otherwise
      System.out.println("firstNum.isPresent(): " + firstNum.isPresent());
      System.out.println("secondNum.isPresent(): " + secondNum.isPresent());
     //orElse() is interesting. If the number is not present orElse executes
      Integer firstInt = firstNum.orElse(new Integer(0));
      //get() is the other method. Use this only if the value exists or use orElse 
      Integer secondInt = secondNum.get();
      return (firstInt + secondInt);
M S Sridhar
Thanks for your registration, follow us on our social networks to keep up-to-date