Java 默认参数

Mohammad Irfan 2023年1月30日 2021年4月29日
  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