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); System.out.println(javaOptional.sum(firstNum,secondNum)); } 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); }}