跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 关于 spring 注解 Nullable 使用的困惑
未分類
7 1 月 2021

关于 spring 注解 Nullable 使用的困惑

关于 spring 注解 Nullable 使用的困惑

資深大佬 : JCJD 0

package org.springframework.lang;  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 javax.annotation.Nonnull; import javax.annotation.meta.TypeQualifierNickname; import javax.annotation.meta.When;  @Target({ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) @Documented @Nonnull(when = When.MAYBE) @TypeQualifierNickname public @interface Nullable { } 

在缺少 javax.annotation.Nonnull,javax.annotation.meta.TypeQualifierNickname,javax.annotation.meta.When 类的情况下,Nullable依然可以正常使用,而不会出现类似’ClassNotFoundException’的错误,这是为什么呢?

大佬有話說 (4)

  • 資深大佬 : TtTtTtT

    简而言之,就是你使用 Nullable 这个注解,创建它的实例时,并不需要使用这几个注解。
    这些注解是标注在 Nullable 类上的元数据,只有在读取 Class<Nullable>的注解时才有可能实例化你说的这三个依赖(这取决于这三个注解是不是能在运行时被实例化,详见 @Retention )。

  • 資深大佬 : liuxey

    全局搜一下呢,可能你没有直接引用,但其他包可能会引用

    我查了下这是 JSR305 里的东西,比如: https://mvnrepository.com/artifact/com.google.code.findbugs/jsr305

  • 資深大佬 : yannxia

    找到了题主的英文问题: https://stackoverflow.com/questions/65561493/i-have-a-problem-with-springs-nullable-annotaion

    也找到了答案: https://stackoverflow.com/questions/3567413/why-doesnt-a-missing-annotation-cause-a-classnotfoundexception-at-runtime/3568041

    大概意思也就是 这个 MetaAnnoation 只是一个标记,在反射的时候不存在也不会报错 == 没有

  • 資深大佬 : wangxiaoaer

    心疼题主,竟然被踩,帮你点了个赞。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具