area:nullabilitycompat:javagood first issueitype:enhancementitype:question
仓库指标
- Star
- (6,247 star)
- PR 合并指标
- (平均合并 18天 14小时) (30 天内合并 133 个 PR)
描述
The @NotNull and @NonNullable type annotations are currently used by explicit nulls to not nullify (or add flexible type to) a reference type from Java signatures.
In addition to these annotations, I suggest we also consider the @Nullable annotation. It indicates a value can indeed be null. In this case, we will always nullify the type (adding | Null), instead of adding a flexible type.
// in Java
@Nullable String f(String s)
// in Scala with explicit nulls currently
def f(s: (String)?): (String)?
// in Scala with explicit nulls considering the annotation
def f(s: (String)?): String | Null
A list of @Nullable annotations we may want to consider:
javax.annotation.Nullable
org.jetbrains.annotations.Nullable
org.jspecify.annotations.Nullable
...