Skip to content

Instantly share code, notes, and snippets.

@reflexdemon
Last active March 3, 2020 17:43
Show Gist options
  • Save reflexdemon/5a9e211bfd3d9e67ce682f2366bb0f81 to your computer and use it in GitHub Desktop.
Save reflexdemon/5a9e211bfd3d9e67ce682f2366bb0f81 to your computer and use it in GitHub Desktop.
Tips for using Java Optional

Tips for using Optional effectively

Tip #1

Dont do,

Optional<DataType> instance = null;

do it this way,

Optional<DataType> instance = Optional.empty();

Tip #2

Dont do,

DataType instance = optionalInstance.get();

do it this way,

if (optionalInstance.isPresent()) {
	DataType instance = optionalInstance.get();
} else {
	//Handle not present
}

Tip #3

Dont do,

MyClass instanceOfMyClass = ... ;
Optional<DataType> optionalInstance = ... ;

if (optionalInstance.isPresent()) {
   instanceOfMyClass.methodOnMyClass(optionalInstance.get(), ...); 
} else {
    instanceOfMyClass.methodOnMyClass(null, ...);  
}

do it this way,

MyClass instanceOfMyClass = ... ;
Optional<DataType> optionalInstance = ... ;

instanceOfMyClass.methodOnMyClass(optionalInstance.orElse(null), ...);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment