这个代码增强或实践被称为什么?(null == conn)而不是(conn == null)

Oh *_*oon 2 java if-statement terminology conditional-statements

我试图报告一些代码增强,但是,我不太确定这个项目的名称是什么.基本上,它不是做a conn == null,而是null == conn为了可读性.

之前:

        if (conn == null){            
            if (log.isDebugEnabled()){
                log.debug("Failed to get a DB Connection");
            }
        }
Run Code Online (Sandbox Code Playgroud)

后:

        if (null == conn){            
            if (log.isDebugEnabled()){
                log.debug("Failed to get a DB Connection");
            }
        }
Run Code Online (Sandbox Code Playgroud)

pax*_*blo 7

这不是为了可读性,而是为了防止意外分配而不是比较.

如果你不小心写了:

if (conn = null)
Run Code Online (Sandbox Code Playgroud)

在C或C++中,将设置connnull然后使用该值作为条件.尽管在那里没有必要,但这已被延续到Java中.

反过来说,编译器将其捕获为尝试分配给常量,因此它甚至不会编译.

至于它叫什么,我从来没有看到它给出一个特定的名称.如果您解释它,您可以将其称为您想要的.我喜欢,Accidental assignment avoidance因为我可以缩短它triple-a.