为了账号安全,请及时绑定邮箱和手机立即绑定

AndroidStudio(IDEA)代码检查:“ ...可能会产生NullPointer

AndroidStudio(IDEA)代码检查:“ ...可能会产生NullPointer

江户川乱折腾 2021-03-30 14:19:34
我有以下Java代码:String func() {    Object data = otherFunc();    return data.toString();}otherFunc()是@Nullable函数,它可以返回null。因此,IDE强调toString()方法是危险的,因为它可能导致NullPointerException。但就我而言,我对otherFunc()的非空结果有100%的信心。因此,我在此处添加了一个断言条件:String func() {    Object data = otherFunc();    MyAssert.notNull(data, some_debug_info);    return data.toString();}MyAssert.notNull()调用中有一个空检查验证,如果为空,则会引发异常(带有一些其他调试信息)。Android Studio仍然突出显示toString()...问题:在调用MyAssert.notNull()之后,如何指示“数据”对象不能为null?也许有一些@annotations?代码中有很多类似的地方,因此该解决方案仅应修改assert函数!
查看完整描述

1 回答

?
森林海

TA贡献2011条经验 获得超2个赞

IntelliJ的Contract注释可能正是您想要的。

用注释您的方法@Contract("null, _ -> fail")应该告诉intelliJ,将null作为第一个参数输入将导致异常,这意味着调用之后的任何代码均将其假定为非null。


查看完整回答
反对 回复 2021-04-21
  • 1 回答
  • 0 关注
  • 218 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信