我有以下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。
添加回答
舉報
0/150
提交
取消