Hans Hans -4 years ago 76
Java Question

Creating an Object from Optional<Object>

So I've created a stream which comes from a List but I'm having some trouble converting it into a

here's what I've tried:

ObjectType sco = getList().stream()
.filter(p -> p.getValue() == value)
.findFirst(); //also tried .orElse(null);

would anyone, please, be so kind as to suggest where I'm going wrong?
(I apologize if this has been asked before but I couldn't find a discussion on this particular topic (or didn't know the proper terms to search for))

Thanks in advance!

Answer Source

findFirst() gives you an Optional and you then have to decide what to do if it's not present. So findFirst().orElse(null) should give you the object or null if it's not present

You could just do a .get() on the Optional, but that could be regarded as poor practice since get() will throw an exception if Optional has no content. You should normally assert presence/absence of the Optional and decide what to do in each case (that's why it's there - so that you know something is truly optional and you have to determine what to do)

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download