-
-
Notifications
You must be signed in to change notification settings - Fork 19
Open
Description
What's the point of Guava's Optional class?
Probably the single biggest disadvantage of null is that it's not obvious what it should mean in any given context: it doesn't have an illustrative name. It's not always obvious that null means "no value for this parameter" -- heck, as a return value, sometimes it means "error", or even "success" (!!), or simply "the correct answer is nothing". Optional is frequently the concept you actually mean when you make a variable nullable, but not always.
more: http://stackoverflow.com/questions/9561295/whats-the-point-of-guavas-optional-class
Optional class: http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/base/Optional.html
Example in com.sk89q.intake.argument.Namespace
/**
* Returns the value specified by the given key.
*
* @param key The key
* @return The value, which may be null, including when the key doesn't exist
*/
public Optional<Object> get(Object key) {
if (!locals.containsKey(key)) Optional.absent();
return Optional.of(locals.get(key));
}
/**
* Get an object whose key will be the object's class.
*
* @param key The key
* @param <T> The type of object
* @return The value
*/
@SuppressWarnings("unchecked")
public <T> Optional<T> get(Class<T> key) {
if (!locals.containsKey(key)) Optional.absent();
return Optional.of((T)locals.get(key));
}Metadata
Metadata
Assignees
Labels
No labels