Currently @NonNullApi can be specified at a package level only. It would be nice if there were a way to do this at a type level as well. This is of interest to users migrating to using the annotated approach to handling null values who haven't converted their entire code base appropriately and want to avoid warnings.
For example, consider a user who wants to implement WebSessionManager. If they create an implementation, like this:
Not annotated method overrides method annotated with @NonNullApi....
To properly resolve this warning, the user would currently need to place @NonNullApi at the package level. However, any other APIs within the package would also be impacted. It would be nice if the @NonNullApi (or similar annotation) could be placed on the type level.
Obviously in the long run, it would be good for the user to expand through the entire package. However, there is some effort involved in migrating so something supporting the type level would be valuable.
Rob Winch We plan to introduce a Spring @NonNull annotation, similar to @Nullable with the opposite semantic. These both annotations should allow to deal with #20496 as well as the progressive nullability use case that you described.