All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.checkerframework.checker.nullness.qual.Nullable Maven / Gradle / Ivy

package org.checkerframework.checker.nullness.qual;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.checkerframework.framework.qual.DefaultFor;
import org.checkerframework.framework.qual.LiteralKind;
import org.checkerframework.framework.qual.QualifierForLiterals;
import org.checkerframework.framework.qual.SubtypeOf;

/**
 * {@link Nullable} is a type annotation that makes no commitments about whether the value is {@code
 * null}. Equivalently, the type includes the {@code null} value.
 *
 * 

The Nullness Checker issues an error if {@code null} is assigned an an expression of {@link * NonNull} type. * *

Programmers typically write {@code @Nullable} to indicate that the value is not known to be * {@link NonNull}. However, since {@code @Nullable} is a supertype of {@code @NonNull}, an * expression that never evaluates to {@code null} can have a declared type of {@code @Nullable}. * * @see NonNull * @see MonotonicNonNull * @see org.checkerframework.checker.nullness.NullnessChecker * @checker_framework.manual #nullness-checker Nullness Checker */ @Documented @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @SubtypeOf({}) @QualifierForLiterals(LiteralKind.NULL) @DefaultFor(types = Void.class) public @interface Nullable {}





© 2015 - 2024 Weber Informatics LLC | Privacy Policy