如何快速找到 Java 中某个功能注解的实现代码

2019-09-04 20:11:19 +08:00
 zhanggg

比如很常见的用于判断非空的注解 @NotNull, 在写某些参数校验的时候经常会用到这个。

那我该怎么去找到这个注解的判空逻辑是怎么写?或者说@NotNull这个注解的实现逻辑,我该怎么去定位到它?

7667 次点击
所在节点    问与答
6 条回复
Atsushi
2019-09-04 20:20:49 +08:00
你要如何知道你写的类在哪个地方被用反射机制加载,一个道理
STRRL
2019-09-04 20:26:50 +08:00
暂时没有好方法,IDE 里翻 usage 或者翻这个注解的文档。
zhanggg
2019-09-04 20:31:58 +08:00
@Atsushi 嗯,现在就是想怎么快速找到这个注解的反射代码
@STRRL IDE 其实有点苦难,特别是找 Spring 的注解实现代码。现在看来也只能找文档比较容易了

其实问题换个问法就是,Java 大量用动态代理的代码里,怎么在静态环境下快速找到我的代码的调用栈
STRRL
2019-09-04 20:39:16 +08:00
@zhanggg 如果范围缩小到 Spring 的话,一方面是熟读 Spring 和 Spring boot 文档,熟悉那些注解是怎么实现的。比如说 ConfigurationProperties, EnableXXXX, 这些东西一定要看文档再看源码. 另一方面, 如果是写了个 SpEL 里有注解的切面,IDEA 能帮你把那个注解也标出来,usage 也能看到.
zhanggg
2019-09-05 09:24:44 +08:00
@STRRL Spring 比较好处理,谷歌结合 idea 大概位置都能找到,一些冷门包看的我头疼
amwyyyy
2019-09-05 11:23:39 +08:00
不是知名的注解,网上搜索不到的。就下源码,全文搜索 getAnnotation(NotNull.class),通常都能找到。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/597994

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX