@Documented @Retention(value=CLASS) @Target(value={METHOD,FIELD,PARAMETER,LOCAL_VARIABLE,TYPE_USE}) public @interface Nullable
Nullable
claims null
value is perfectly valid
to return (for methods), pass to (parameters) or hold in (local variables and fields).
Apart from documentation purposes this annotation is intended to be used by static analysis tools
to validate against probable runtime errors or element contract violations.
null
because the developer could do nothing to prevent null from happening.
Otherwise, too eager Nullable
usage could lead to too many false positives from static analysis tools.
Map.get(Object key)
should not be annotated Nullable
because
someone may have put not-null value in the map by this key and is expecting to find this value there ever since.
Reference.get()
should be annotated Nullable
because
it returns null
if object got collected which can happen at any time completely unexpectedly.public abstract String value
Copyright © 2015. All rights reserved.