我们的项目变化对象存在性检查从foo == null
或foo != null
到Objects.isNull(foo)
或Objects.nonNull(foo)
。我从来没有得到一个解释,为什么那应该更好,这就是为什么我问。
我已经用Pascal、C、Perl、Java进行了很长时间的编程,并且总是用!=
检查不平等。这个系统非常常见,任何看到它的程序员都知道它马上要做什么。现在我们有了一个函数,至少当您第一次看到它时,您必须检查它实际上在做什么(类似于C++,但我认为这是一种恶化)。我承认,我仍然认为调用函数是程序中的额外跳转,堆栈上必须有额外的元素,我知道编译器现在可以内联,但是对于一个基本函数来说,调用一个只封装了这个函数的单行函数似乎很奇怪。那次改变是一年半前的事了,我至今仍犹豫不决。Javadoc对该函数进行了注释:“此方法存在作为谓词使用”,但它让我独处,这是在任何地方使用该函数的优点。
所以,我想问一问,这种做法有甚麽好处呢?这是一个更好的面向对象的风格吗?它在调试、单元测试、静态代码分析方面有什么好处,还是在另一个上下文中重要?
发布于 2020-10-15 14:05:59
问问那些在你的项目中做了改变的人。
我同意您的观点,在任何地方这样做都没有好处,Javadoc也暗示了这一点--这些方法是通过方法引用创建的。
https://softwareengineering.stackexchange.com/questions/417967
复制相似问题