Java8 - OptionalLong Class Example


OptionalLong class is introduced in java8 along with OptionalInt and OptionalDouble. This is an optional container for long values that may or may not contain empty or nonempty values.
if long value is present,isPresent() method returns true. getAsLong() method returns long value.OptionalLong is a primitive long version of Optional class whereas Optional is an Optional class for Long Object. It is defined java.util package since java8 version

Creation Empty OptionalLong Instance

empty() method creates OptionalLong instance. There is no object presented with this. isPresent() method returns false, false meaning absence of values

OptionalLong emptyOptionalLong= OptionalLong.empty();  
System.out.println(emptyOptionalLong.isPresent()); // returns false  

Create OptionalLong Instance with not null values.

OptionalLong.of(long) method creates an OptionalLong instance with the long value presented in it.

 OptionalLong valueOptionalLong = OptionalLong.of(51);   
System.out.println(valueOptionalLong.isPresent()); // returns true

ifPresentOrElse() method example

ifPresentOrElse method checks, if value exists, apply consumer on the value, else empty value

 OptionalLong optionalLongvalue = OptionalLong.of(5);   
optionalLongvalue.ifPresentOrElse((value) ->{  
System.out.println("data exists: " + value);  
}, () -> {  
System.out.println("Not exists");   
 data exists: 5

getAsLong() method example

getAsLong() method returns value if present, else throws NoSuchElementException

OptionalLong optionalLong = OptionalLong.of(20);  

output is


OptionalLong Example

This is an example of usage of Lambda expression with OptionalLong and utility methods like empty(),of(int),ifPresentOrElse()

OptionalLong emptyOptionalLong = OptionalLong.empty();   
OptionalLong valueOptionalLong= OptionalLong.of(58);   
valueOptionalLong.ifPresentOrElse((value) -> {  
System.out.println("data exists: " + value);  
}, () -> {  
System.out.println("Not exists");   
emptyOptionalLong.ifPresentOrElse((value) -> {  
System.out.println("data exists: " + value);  
}, () -> {  
System.out.println("Not exists");   

data exists: 58  
Not exists  

How to Convert OptionalLong to Long in java8

OptionalLong.getAsLong() method returns primitive long value. Follow is an example for Convert to primitive long value

long longValue =0;  
OptionalLong optionalLong = OptionalLong.of(4);  
if(optionalLong.isPresent()) {  
System.out.println(longValue); // output 4  

Output is

Not exists  

Convert long to OptionalLong in java8

OptionalLong.of() method used to create OptionalLong with non empty long value.
public static OptionalLong of(long value)
This takes long Value as input and returns OptionalLong object.

long longValue = 121l;  
OptionalLong optionalLong = OptionalLong.of(longValue);  
System.out.println(optionalLong.isPresent()); // returns true    
System.out.println(optionalLong.getAsLong()); // returns 121 

Difference between OptionalLong and Optional in java8?

Optional.get() returns Long Object
OptionalLong.getAsLong() method returns long primitive value
IntStream and OptionalLong objects of long value have a posiblility of nullpointerexception
Optional and Stream for long value acts as extra wrapper to avoid null exceptions.


OptionalInt provides many utilities for handling available and not available.




Empty OptionalLong Instance will be created


Return long value, if value exists in OptionalLong, Else NoSuchElementException

ifPresent(LongConsumer consumer)

Executes LongConsumer, if value exists in OptionalLong, else do nothing


Returns true, if value exists in OptionalLong, else returns false

of(long value)

Creation of OptionalLong with non null values, if null is passed, NullPointerException thrown and OptionalLong object will not be initlized

orElse(long other)

Return default value if value is not presented in OptionalLong

orElseGet(LongSupplier other)

Returns value if value presented in OptionalLong, else supplier is being called and result this will be returned

orElseThrow(Supplier exceptionSupplier)

Returns value if value presented in OptionalLong, else supplier is being called and throws an error

Join 6,000 subscribers and get a daily digest of full stack tutorials delivered to your inbox directly.No spam ever. Unsubscribe any time.

Similar Posts
You'll get a notification every time a post gets published here.