它是在Java中使用javaargs而不是重载的标准方法吗?

sca*_*now 4 java overloading

它是一种标准的编码方式还是其他任何替代方案?我想了一下我写的代码.终于放弃了,并想与你们一起检查.

这是我的情景.

private String functionNameXYZ(String a,String b) {
   //Logic goes here
}
private String functionNameXYZ(String a,String b,String c) {
   //Same logic goes here , Nothing much difference because of String c
}
Run Code Online (Sandbox Code Playgroud)

所以我为了同样的目的而跳过两个函数,我创建了一个函数,如下所示.

private String functionNameXYZ(String a, String b,String... c){
   return performlogic(a,b,(c.lenght!=0)? c[0]:null);
}
private String performlogic(String a,String b, String c) {
   //logic , return "string"
}
Run Code Online (Sandbox Code Playgroud)

哪种是标准的编码方式?它是将逻辑分离为新方法而不是重复[第二种情况]还是以其他方式?如果你找到更好的方法,请建议吗?

Mur*_*nik 6

如果你只有两个有效的选项有两个String参数和三个String参数,使用可变参数是一点点矫枉过正,更糟的是-这是令人困惑,因为这意味着,你也可以通过五年,十年或一个极大争论.相反,你可以做一些更简单的事情:

private String functionNameXYZ(String a, String b) {
   functionNameXYZ(a, b, null);
}

private String functionNameXYZ(String a, String b, String c) {
   // One place for the logic
}
Run Code Online (Sandbox Code Playgroud)