我正在对 Java 应用程序进行重构/审查。
当我这样做时,我表明某些方法已经 返回值,如
Object
、String
、Boolean
等,但是
返回值不在任何地方使用。只做了方法调用。
所以,我只是在徘徊,保持原样会导致 应用程序的性能问题。
我应该将它们更改为
void
还是保持原样?
不仅是一场表演,它还造成了不恰当的方法构建。
如果方法的返回值在程序中没有使用,那么就没有理由返回它,因此方法的返回类型应该设为
void
。我认为保持返回类型不变不会造成性能损失。
话虽这么说,我认为你仍然应该删除它们。原因是它们本质上是死代码。这些围绕返回类型的方法中可能潜伏着未知的错误——未知是因为它们没有被使用。如果有一天有人决定使用它们,这将是一种潜在的危险。
此外,如果保留它们,维护负担也会增加:每次有人接触其中一种方法时,她都必须(不必要地)考虑返回类型。
这本质上可以归结为 YAGNI。
在我看来,要么 API 使用不正确,要么设计不正确。
如果 API 设计正确,那么为什么 API 用户不使用方法返回类型?在这种情况下,用户一定是错的。
另一方面,如果 API 设计不正确,那么在当前状态下使用它还有什么意义呢?如果返回的信息是多余的,则修复 API 并使方法无效。
我认为与良好的 API 设计相比,性能考虑并不重要。性能总是可以在以后改进,但是 API 的更改非常困难且昂贵。
如果未使用值,则不应返回值。请改用
void
。有时我会看到一些 getters 没有被使用,但实际上它们被 Web 框架使用了。很难确定该方法是否未被使用。即使使用了但返回值也会被忽略。没有限制不能忽略返回值。