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

更好的Java方法语法?早晚返回?

柳晔
2023-03-14
问题内容

通常,您可能有一种检查大量条件并返回状态的方法(现在先说布尔值)。最好定义一个标志,在方法中进行设置,然后在最后返回:

boolean validate(DomainObject o) {
  boolean valid = false;
  if (o.property == x) {
     valid = true;
  } else if (o.property2 == y) {
     valid = true;
  } ...
  return valid; 
}

还是知道方法的结果后简单地返回就更好/更正确?

boolean validate(DomainObject o) {

  if (o.property == x) {
     return true;
  } else if (o.property2 == y) {
     return true;
  } ...
  return false; 
}

现在显然可以有try / catch块和所有其他类型的条件,但是我认为概念很明确。意见?


问题答案:

如果您要调用的方法数以千计,那么尽早返回会更好地提高性能。

如果没有,那么我宁愿延迟归还,因为这样可以提高可读性。

请记住,程序员通常比阅读代码花费更多的时间,因此,您可以做的任何可以提高可读性的事情都将受到欢迎。



 类似资料:
  • 我正在开发一个简单的论坛Web应用程序使用SpringMVC, JPA2.我创建了反映数据库表结构的JPA实体,如用户、论坛、帖子等。 但是,当在UI上显示数据时,我需要DTO,因为我不能始终使用实体保存要在UI上显示的数据。 例如:更改密码屏幕。在这里,我需要持有旧Pwd,新密码和确认新Pwd。但是用户实体没有旧/新/确认Pwd字段,它只有密码。所以我需要创建DTO,它只是网络和服务层之间的数据

  • Edit:是我现在正在做的事情,但是由于只是返回,所以这似乎是对Map的误用。另外,它读起来并不像是商业逻辑。 最后编辑:我接受了@Holger的回答。不能期望处理流上的所有元素,因为它不是终端操作。也是如此。即使您可能已经终止了您的流,以保证它将处理所有操作,您也不应该编写期望每个用户都这样做的代码。因此,要进行处理,您应该在上使用,然后根据需要再次开始对进行流式处理。

  • 我有一些多绑定代码,看起来像这样: 我也有一些代码,看起来像这样: Guice中有没有一种方法可以减少行数/重复次数? 编辑:不寻找像“使用for循环并迭代一组键”这样的答案。

  • 我有这样的代码: 我有近10个台阶。它看起来非常脆弱而且容易出错。有更好的方法检查空链接方法吗? 多谢了。

  • 问题内容: 我有这样的代码: 我有将近10个步骤。看起来非常脆弱且容易出错。有没有更好的方法来检查空链方法? 谢谢。 问题答案: 这是Java中引用的常见问题。 我更喜欢与:

  • 这是一个众所周知的问题,当您在Windows上更新Java、JDK或JRE时,Eclipse很可能无法启动,因为它指向过时的JDK/JJRE文件夹。修复是相对简单的,它是在这里或这里的几个线程上讨论和解决的。 但我发现这些解决方案缺乏灵活性,令人不满意。此解决方案建议在转换为: 这意味着你必须在每次更新后,一次又一次地进行。如果您经常更新JDK,并且每个人都应该有最新的安全补丁,这会使它非常烦人。