これは私が持っているコードです:IntelliJは、なぜこのような状況で参照がnullになることができないと伝えていますか?
private void foo(Bar bar) {
Session session = null;
Class entityClazz = null;
try {
entityClazz = Hibernate.getClass(bar);
if (bar != null) {
そしてIntelliJのは、メッセージと上記の最後の文を掲載して警告します:
条件「バー= nullを!」「真」は常にあります。この検査 は、常に真または偽である可能性のある条件 を報告するメソッド制御とデータフローを分析し、値が静的には であることが判明した式と、NULL許容性につながる可能性のある状況 契約違反です。
entityClazz = Hibernate.getClass(bar);
警告が消えてしまいます。私は文を削除すると
。
ここでIntelliJの心の中で何が起こっているのですか?バーがヌルになるのは何ですか?
私は推測、 'Hibernate.getClass(バー)はbar'がnullの場合、' 'NullPointerExceptionがスローされますので、'もしので、その場合、決して達成されません。 –
@a_horse_with_no_nameコードにNPEがスローされているのを見たことがありませんでしたが、おそらく私はそれを見逃しました.. –
'Hibernate.getClass'が' @ NotNull'を持っているかどうかを確認してください。 –