java中是否存在任何配置标志,是否将null == null将被比较为false或true?

现在,它总是结果为true。

用例是将以下逻辑与mysql对齐,以便它可以返回相同的结果:

在java中

System.out.println(null == null); //true


在mysql中

select if(null = null, 'true', 'false'); -- false


换句话说,java中有一个配置功能,可以配置比较的结果逻辑(例如,以及Double.NEGATIVE_INFINITY == Double.NaN的输出)?

Configuration table

Configuration flag                     | Default  | Set Value
-------------------------------------- | ------   | --------
null==null                             | true     | false
Double.NEGATIVE_INFINITY == Double.NaN | false    | false
true = true                            | true     | true
.....


那么是否可以通过某些标志进行配置?

最佳答案

null == null的结果为defined by the JLS


  在运行时,如果操作数值都为null或都引用相同的对象或数组,则==的结果为true;否则,结果为假。


任何重新定义此行为的配置选项都将违反规范。

关于java - 我可以在java中设置一些配置标志,无论null == null将为false还是true?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45099560/

10-13 09:10
查看更多