当前位置: 首页 > 面试题库 >

String.equals()参数排序

轩辕涵亮
2023-03-14
问题内容

我最近在最近的回答中使用以下内容收到了反对意见:

String word = ...;
if ("s".equals(word) || "y".equals(word)

由于使用“ yoda条件”而给出了下票。我要求进一步解释,但未提供任何解释。我更喜欢这种风格以避免可能NullPointerException

这是不良的编码风格吗?如果是这样,为什么?


问题答案:

Bill Pugh在Devoxx2011上问了这个问题"xyz".equals(str)。我和比尔在一起,现在更喜欢str.equals("xyz")

Java传统的基础是我们尽早发现错误。NPE非常普遍。我们希望尽快将这些空值路由出去。

如果您期望引用maynull,那么我并不特别反对反向表示法。很明显很容易理解,可能会有null单独的null检查,但是应该很好地理解相反的顺序,并且可以将代码与null禁止的正常情况充分区分开。

在安全性方面,null-tolerance容纳的一些错误是漏洞。



 类似资料:
  • 问题内容: 我一直在尝试了解一些API方法的工作方式 下面是java.lang.String类的equals方法的摘要 有人可以告诉我代码实际上是如何比较两个字符串的。我得到了计数的重要性,但是偏移量的含义是什么。这些变量如何获得价值? 就像我创建一个String一样。这些是如何初始化的。 详细的逐行描述,以及如何以及何时初始化实例变量,值,计数,偏移量等? 问题答案: 逻辑上 是相同的 我不确定

  • 看看下面的伪C++代码: 有两个函数带有参数。参数计数大于三,但为了简单起见,例如设为三。 -它是模板函数,具有与相同的参数计数,并且参数具有与相同的类型。但是(!)参数上的顺序可以(或不能)不同。例如: 那么如何在中重新排序参数,以便使用正确的参数序列调用呢?

  • Spring Boot 2.0.1.RELEASE项目包含Spring Data JPA和Spring Data REST。似乎忽略了RESTendpoint中的<code>sort</code>参数(但在单元测试中使用相同的存储库方法)。存储库如下: } 实体(已编辑)如下: 当我尝试使用导出的RESTendpoint调用它时,例如: http://localhost:8080/api/v1/o

  • 问题内容: 我正在尝试将多重排序查询传递给mgo软件包的“排序”参数(请参阅https://godoc.org/labix.org/v2/mgo#Query.Sort)。 如果参数是动态的(当前保存在切片中),如何将其转换为有效的排序字符串。 一个有效的例子是: 但是,如果将“ -created_when”和“ -title”保留在一个切片中,则尝试使用切片联接,例如: 该查询无法正常工作。 如何

  • 问题内容: 我通过用户给定的参数对存储过程进行排序时遇到问题,我尝试阅读,但是尝试过的解决方案不起作用。 那么,有人可以帮助我吗?我希望可以从Group_concat中按类型对它进行排序。如果我以Harcoded形式输入它(例如,ORDER BY Type1,ORDER BY Type2等),它将起作用。但是我想要这样的东西(ORDER BY @specificStat)。 问题答案: 改用这个:

  • 问题内容: 谁能指出我如何将order by子句作为命名参数传递给HQL? 有效的示例: 无效的示例: 问题答案: 不支持,只能在and 子句中使用输入参数,并且不能为子句使用参数。或者,如果我改写,您不能对列使用参数,只能对值使用。因此,要么: 有尽可能多的命名查询排序顺序 将排序字符串连接到查询字符串 使用条件查询