Scala 编译器-Xcheck-null
尝试检查运行时是否存在任何潜在的空指针取消引用。
对我来说没问题,但是我得到了太多误报,即假设我定义了 logger :
private final val LOGGER: Logger = LoggerFactory.getLogger(classOf[GenericRestImpl])
该方法getLogger
永远不会返回null
。我怎样才能将这些知识传递给编译器,这样它就不会抱怨?
[WARNING] TestImpl.scala:31: warning: potential null pointer dereference: LOGGER.debug
[WARNING] LOGGER.debug("Using {} for sort", sortParam)
当我创建新实例时,我可以用NotNull
特征标记它:
return new Foo() with NotNull.
没关系,但是如何处理从其他方法返回的对象呢?特别是如果它来自 3rd 方库?我不喜欢将所有变量都标记为可选的想法,因为它会增加太多开销。另外,我不喜欢创建隐式转换的想法(因为它需要为每个我想标记为 NotNull 的类提供额外的类。
我还检查了对 Scala 的 NotNull 特征的问题库支持,但它无助于解决我的问题。