在Java中,为什么@Nullable具有运行时转储

正如标题所说,拥有@Nullable和@Nonull可以帮助你的ide或linter在编译时捕获bug,但为什么它有运行时保留?

解决方法:

可以想象,运行时保留将允许AOP代理检测传递给@Nonnull-annotated参数的空参数,并抛出异常或以其他方式处理它.您可以争辩说,这是一种处理运行时空检查的更好方法,即在代码中使用显式空检查.

是的,这些注释对于静态编译检查非常有用,但是没有理由它们不能在运行时用于相同的目的.它们作为注释的有效性延伸到运行时域,不像用于代码生成之类的注释.

上一篇:Java并发编程:线程和锁的使用与解析


下一篇:c# – 检查OpenFileDialog的可空结果