Paramètres par défaut Java
- Paramètres par défaut en Java
- Définir les paramètres par défaut à l’aide de var-args en Java
- Définir les paramètres par défaut sous forme de chaîne vide en Java
- Définir les paramètres par défaut à l’aide de var-args avec n’importe quel nombre d’arguments en Java
Ce didacticiel explique comment implémenter les paramètres par défaut en Java.
Un paramètre par défaut est utilisé lorsqu’aucune valeur n’est transmise. C’est utile lorsque nous voulons passer des arguments limités alors que la méthode accepte plusieurs arguments. Par exemple, une méthode accepte trois arguments, mais si nous souhaitons ne transmettre que deux arguments lors de l’appel de méthode, alors le compilateur Java utilise la valeur par défaut du troisième argument pour éviter toute erreur de compilation.
Java ne prend pas en charge la valeur des paramètres par défaut, mais nous pouvons y parvenir en utilisant certaines solutions intégrées telles que var-args ou la surcharge de méthode. Voyons quelques exemples.
Paramètres par défaut en Java
Dans cet exemple, nous utilisons l’approche de surcharge de méthode pour définir la valeur du paramètre par défaut. Cependant, ce n’est pas une bonne solution mais peut être utilisée comme alternative. Remarquez, nous passons 0 comme valeur par défaut en appelant la méthode add()
.
Cette approche ne fonctionne pas si nous avons deux paramètres facultatifs du même type, et n’importe lequel d’entre eux peut être omis.
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);
}
}
Production:
resutl1 : 10
resutl2 : 30
Définir les paramètres par défaut à l’aide de var-args en Java
C’est une autre approche où nous utilisons la fonction variable args pour définir les paramètres par défaut. Le var-args
permet de passer une longueur variable d’arguments du même type. Voir l’exemple ci-dessous.
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);
}
}
Production:
resutl1 : 10
resutl2 : 30
Définir les paramètres par défaut sous forme de chaîne vide en Java
Dans le cas des paramètres de chaîne, nous pouvons définir une chaîne vide pour les paramètres; cependant, cette chaîne contient null comme valeur par défaut. Voir l’exemple ci-dessous.
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);
}
}
Production:
resutl1 : second10
resutl2 : first10
Définir les paramètres par défaut à l’aide de var-args avec n’importe quel nombre d’arguments en Java
Dans le cas de var-args, nous sommes libres de fournir n’importe quel nombre d’arguments lors de l’appel de la méthode. Donc, si vous ne souhaitez fournir que des arguments limités, cela fonctionnera correctement. Voir l’exemple ci-dessous.
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);
}
}
Production:
resutl1 : 0
resutl2 : 10
resutl3 : 30