考慮下面的Java代碼:Java的等式操作符是否可交換?
Integer foo = bar();
if(foo == 5) ...;
if(5 == foo) ...;
這些是比較平等 - 尤其是在foo
是null
的可能性?他們擴大到foo.getValue() == 5
和5 == foo.getValue()
,或更類似於foo.equals(new Integer(5))
和new Integer(5).equals(foo)
或其他東西?可能一個或另一個或兩個或沒有投擲NPE?
它看起來像你問他是否是對稱的,不是交換的。普通規則適用於什麼時候拋出一個NPE(雖然對於它的價值,我敢肯定,如果參數爲null,大多數實現將返回'false'。) –
@ user2864740:問題不一樣,因爲我也在問操作數的順序。 – Dolda2000
@ Dolda2000這就是爲什麼我只是把它連接起來。無論如何,[*請參閱答案*](http://stackoverflow.com/a/3352798/2864740) - 它包含許多信息。 – user2864740