For further actions, you may consider blocking this person and/or reporting abuse
Read next
Enhancing Performance with Static Analysis, Image Initialization and Heap Snapshotting
Ivelin Yanev -
Don’t use if-else blocks anymore! Use Strategy and Factory Pattern Together
Tamer Ardal -
Introduction to Java: for Beginners
Melody Mbewe -
Java Performance Optimization Techniques
Mohamed Kramti -
Top comments (4)
Suppose you have a labeled box which can hold anything you like. On the label you write that the box may or may not be empty, along with what kind of thing you will put in the box (like coffee cup).
You can then give this box to other people and they know that the box very well could be empty or it could contain a coffee cup. Therefore they need to prepare for the case where the box is full and for when the box is empty.
People can always check if the box is empty, pull the coffee cup from the box, do something with the coffee cup in the box but keep it in the box, etc.
Optional<T>
(also calledOption
in other langs like Scala)Optional
of typeT
Optional<T>
Optional::isPresent
Optional::get
Optional::map
Optionals are a handy explicit way of representing values which may or may not be present (basically it is meant to replace returning null)
other Optional methods
Optional::orElse - you have another cup which you will use if the box is empty (or you don't have a cup but act like you do)
Optional::orElseGet - you don't have another cup but you know where to get it (and you throw a fit if you don't get a cup there)
Optional::filter - you only need coffee if it has no sugar
Optional::map - you have a kettle and want to make a cup of coffee
Optional::flatMap - you have a kettle and want to make a cup of coffee but there might be no cups in the cupboard
Optional::ifPresent - do something with a cup
Nicely done, Evan!
Thanks for sharing your thoughts :)
What value is it adding?
I can do a null/empty check on any object and use it.
Here also I need to check if optional is empty.