Java 默认参数

Mohammad Irfan 2023年10月12日
  1. Java 中的默认参数
  2. 在 Java 中使用 var-args 设置默认参数
  3. 在 Java 中将默认参数设置为空字符串
  4. 在 Java 中使用带有任意数量参数的 var-args 设置默认参数
Java 默认参数

本教程介绍了如何在 Java 中实现默认参数。

如果不传递任何值,则使用默认参数。当我们要在方法接受多个参数的同时传递有限的参数时,这将很有帮助。例如,一个方法接受三个参数,但是如果我们希望在方法调用期间仅传递两个参数,则 Java 编译器将使用第三个参数的默认值来避免任何编译错误。

Java 不支持默认参数值,但是我们可以使用一些内置解决方案来实现它,例如 var-args 或方法重载。让我们看一些例子。

Java 中的默认参数

在此示例中,我们使用方法重载方法来设置默认参数值。但是,这不是一个好的解决方案,但可以用作替代方案。注意,在调用 add() 方法时,我们将 0 作为默认值。

如果我们有两个相同类型的可选参数,则该方法无效,并且可以省略其中的任何一个。

public class SimpleTesting {
  int add(int a, int b) {
    return a + b;
  }
  int add(int a, int b, int c) {
    return a + b + c;
  }
  public static void main(String[] args) {
    SimpleTesting test = new SimpleTesting();
    int val1 = 10;
    int val2 = 20;
    int result1 = test.add(val1, 0);
    int result2 = test.add(val1, 0, val2);
    System.out.println("resutl1 : " + result1);
    System.out.println("resutl2 : " + result2);
  }
}

输出:

resutl1 : 10
resutl2 : 30

在 Java 中使用 var-args 设置默认参数

这是我们使用可变 args 功能设置默认参数的另一种方法。var-args 允许传递可变长度的相同类型的参数。请参见下面的示例。

public class SimpleTesting {
  int add(int a, int... b) {
    int b2 = b.length > 0 ? b[0] : 0;
    return a + b2;
  }
  int add(int a, int b, int c) {
    return a + b + c;
  }
  public static void main(String[] args) {
    SimpleTesting test = new SimpleTesting();
    int val1 = 10;
    int val2 = 20;
    int result1 = test.add(val1);
    int result2 = test.add(val1, 0, val2);
    System.out.println("resutl1 : " + result1);
    System.out.println("resutl2 : " + result2);
  }
}

输出:

resutl1 : 10
resutl2 : 30

在 Java 中将默认参数设置为空字符串

对于字符串参数,我们可以为参数设置一个空字符串。但是,此字符串将 null 保留为默认值。请参见下面的示例。

public class SimpleTesting {
  String defaulPara(int a, String str1, String str2) {
    return str1 + str2 + a;
  }
  public static void main(String[] args) {
    SimpleTesting test = new SimpleTesting();
    int val1 = 10;
    String result1 = test.defaulPara(val1, "", "second");
    String result2 = test.defaulPara(val1, "first", "");
    System.out.println("resutl1 : " + result1);
    System.out.println("resutl2 : " + result2);
  }
}

输出:

resutl1 : second10
resutl2 : first10

在 Java 中使用带有任意数量参数的 var-args 设置默认参数

在使用 var-args 的情况下,我们可以在调用方法时随意提供任意数量的参数。因此,如果你只想提供有限的参数,那么它将很好地工作。请参见下面的示例。

public class SimpleTesting {
  int defaulPara(int... a) {
    int sum = 0;
    for (int i : a) {
      sum += i;
    }
    return sum;
  }
  public static void main(String[] args) {
    SimpleTesting test = new SimpleTesting();
    int val1 = 10;
    int val2 = 20;
    int result1 = test.defaulPara();
    int result2 = test.defaulPara(val1);
    int result3 = test.defaulPara(val1, val2);
    System.out.println("resutl1 : " + result1);
    System.out.println("resutl2 : " + result2);
    System.out.println("resutl3 : " + result3);
  }
}

输出:

resutl1 : 0
resutl2 : 10
resutl3 : 30

相关文章 - Java Method