先强调一点,是否遵循这个注解全凭自觉 (没有参数验证功能)
点进注解源码可以看见@Nullable注解继承了多个注解接口,下面对继承的接口依次分析:
这个注解是表示这个注解的作用目标可以是什么
ElementType.METHOD(方法)
ElementType.PARAMETER(方法参数)
ElementType.FIELD(字段、枚举的常量)
表示注解的生命周期
RetentionPolicy.RUNTIME(注解不仅被保存到class文件中,jvm加载class文件之后,仍然存在)
生成的文档上有注释(显示@Nullable)
@NonNull修饰字段、方法和参数,那么字段不可为null,方法返回值不可为null,参数不可为null。
至于when = When.MAYBE的作用,本人推测也只是标记的作用(下面是注解@NonNull的源码)
其他注解使用这个注解(@Nullable)时
会加上全部@Nullable所使用的(除去@TypeQualifierNickname)的所有注解
最后,
希望文章对你有所帮助。。。