gpt4 book ai didi

java - null != null - 关于如何重新安排代码或防止这种情况的任何想法?

转载 作者:行者123 更新时间:2023-12-01 07:41:10 24 4
gpt4 key购买 nike

当前正在调试,发现一个 if 语句,没有(我认为......)原因给了我一个 NPE,显然是有原因的。该语句似乎是 if(false && (null != null || null != Color))

if(destination != null && (destination.getPiece() != null || destination.getPiece().getColour() !=pieceColour)) - if 语句

两个目的地可以为空,而片段可以为空。 getColour() 方法从piece 返回一个Color 类型的属性,如果该piece 为null,则该属性必须为null。目的地处的棋子具有与 if 语句中的棋子不同的pieceColour 属性。

具体来说,如何重新排列 (destination.getPiece() != null) ?

最佳答案

该声明第二部分的逻辑非常困惑。

如果 getPiece() 为 null,则

getPiece().getColour() 无效,反之亦然。

换句话说,destination.getPiece() == null => destination.getPiece().getColour() 是一个 NPE。同样,destination.getPiece().getColour()任何东西 => destination.getPiece() != null

对我来说唯一有意义的是:

if( destination != null && (destination.getPiece() == null || destination.getPiece().getColour() != pieceColour))

也就是说,目的地不为空,并且该 block 要么为空,要么为不同的颜色。

关于java - null != null - 关于如何重新安排代码或防止这种情况的任何想法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4688607/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com