Java 方法重载最佳实践

标签 java methods overloading

只是想知道创建具有相同签名的方法的最佳实践是什么

案例1

public void transfer(Department department){
    this.department = department;
}

public void transfer(Department department,String postion){
    this.department = department;
    this.postion = position;
}

案例2

public void transfer(Department department){
    this.department = department;
}

public void transfer(Department department,String postion){
    transfer(department);
    this.postion = position;
}

最佳答案

您可以避免代码重复。

从这个角度来看,选项 2 稍好一些,因为它可以防止重复分配。通常,您可以使用构造函数来执行此操作,然后将其称为构造函数伸缩。要在这里实现真正的伸缩,您应该遵循 Berger 的建议,而让单参数方法调用双参数方法。这向读者传达了该部门实际上导致的设置

除此之外:我在这里看到的真正问题是命名。 transfer() 意味着某些内容被传输。实际上,您的方法只不过是一个setter。它应该相应地命名,例如 setTransferDetails()

关于Java 方法重载最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50942257/

相关文章:

java - TrueType Collection (.ttc) 在 Java Swing 中设置为字体

java - 使用数据文件部署 Java 应用程序、Java Applet 和 Android 应用程序的正确方法是什么?

java - 枚举初始值设定项禁止的一些静态类型

javascript - 方法与 Vue 中的计算

c++ - 重载和覆盖如何协同工作?

C++ 我应该重载运算符吗?

scala - 为什么这样的操作符定义在 Scala 中是可能的?

tomcat 中的 Java Web 应用程序会定期卡住

java - 将方法参数作为要更改的对象状态传递的能力

java - 在数组中搜索字符串