更改为无效或保留的返回值

问题描述:

我在做一个Java应用程序更改为无效或保留的返回值

的重构/审查当我这样做,我表明了一些方法有 返回值如ObjectStringBoolean,等等,但是 返回值没有在任何地方使用。只有完成了方法调用。

所以,我只是徘徊保持它们,因为它会导致应用程序的性能问题 。

我应该将它们改为无效还是保持原样?

+3

如果你最终要使用返回值,你应该保留它们。如果不是,则不需要保留它们。请记住,您仍然可以在'void'方法中使用'return;'来尽早退出该方法。 – Baz

+0

可以有人解释我什么实际发生在JVM中,当你有返回类型和void – Suranga

+0

@Baz +1相反是不正确的,如果方法不是返回'void',你必须放置'return'语句。 –

我不认为会有性能上的损失保持返回类型像他们。

这就是说,我认为你应该仍然删除它们。原因是他们基本上是死代码。这些方法中可能存在潜在的未知错误,这些错误会围绕返回类型进行 - 未知的原因是它们未被使用。如果有人决定在一天内使用它,这是一个潜在的危险。

此外,如果您保留维护负担,则会增加维护负担:每次有人触及其中一种方法时,她必须(不必要地)考虑返回类型。

这实质上归结为YAGNI。

  • 而且不是作为一个性能击中其的方法的施工不当。

  • 如果方法的返回值有程序中没有使用则没有任何理由退货,所以该方法的返回类型应作出void

+0

有一些机构可以解释当JVM出现返回类型和void – Suranga

在我看来,无论是API使用不当或它的设计不正确。

如果API设计正确,那么为什么API用户不使用方法返回类型?在这种情况下,用户必须是错误的。

另一方面,如果API设计不正确,那么在当前状态下使用它有什么意义?如果返回的信息是多余的,请修复API并使其无效。

我认为,与良好的API设计相比,性能考虑并不重要。性能总是可以在以后得到改进,但API变化非常困难且代价高昂。

如果未使用的值不应返回值。改为使用void。有时我会看到一些获取者未使用,但实际上它们被web框架使用。很难确定该方法是否未使用。即使它被使用但返回值被忽略。没有限制不忽略返回值。