web-dev-qa-db-fra.com

Android: Comment définir une valeur par défaut pour une variable d'argument

Fonction Android

Exemple PHP:

function HaHa($a = "Test")
{
    print $a; 
}

La question est de savoir comment le faire dans Android ...

public void someFunction(int ttt = 5)
{
   // something
}

La solution ci-dessus ne fonctionne pas, comment puis-je le faire?

Merci!

17
M.V.

Non, Java ne prend pas en charge les valeurs par défaut pour les paramètres de fonction. Voici un article intéressant sur les fonctionnalités de la langue empruntée: http://Java.dzone.com/news/default-argument-values-Java

12
Bendihossan

Vous pouvez abuser de la surcharge comme ceci:

int someMethod() { return someMethod(42); }
int someMethod(int arg) { .... }
10
Ingo

Pas besoin de surcharger quoi que ce soit, il suffit d'écrire:

public int getScore(int score, Integer... bonus)
{
    if(bonus.length > 0)
    {
        return score + bonus[0];
    }
    else
    {
        return score;
    }
}
7
Hamzeh Soboh

vous pouvez utiliser la syntaxe 3 dots:

public void doSomething(boolean... arg1) {
    boolean MyArg1= (arg1.length >= 1) ? arg1 : false;
}
3
T.Todua

Vous pouvez utiliser la surcharge d'une fonction. La surcharge est également acceptable, mais si vous avez besoin de valeurs par défaut pour plusieurs arguments, vous finirez par créer de nombreuses méthodes avec toutes les combinaisons possibles d'arguments par défaut, par exemple, imaginez-vous. veulent avoir une valeur par défaut pour les 3 arguments. vous allez vous retrouver avec ça

public void methodA(A arg1) {  }
public void methodA( B arg2,) {  }
public void methodA(C arg3) {  }
public void methodA(A arg1, B arg2) {  }
public void methodA(A arg1, C arg3) {  }
public void methodA( B arg2, C arg3) {  }
public void methodA(A arg1, B arg2, C arg3) {  }

Alors, voici le bidouillage que j'ai fait pour moi, vous pouvez également utiliser

public static void main(String[] args)
{
    defaultParameter();
    defaultParameter(true);
}

public static void defaultParameter(Boolean ...gender)
{
    boolean genderBoolean  = false; // It the default value you want to give
    if(gender.length == 1)
    {
        genderBoolean = gender[0];  // Overrided Value
    }
    System.out.println(genderBoolean);
}

Le code ci-dessus générera un résultat 

false
true

Je découvre ici l'exemple Java-default-parameter-values ​​

1
Jigar Shah

Java ne supporte pas une syntaxe qui fera ce que vous voulez.

Peut-être qu'au début de someFunction (int), vous pourriez simplement vérifier la valeur entrante et attribuer une valeur différente si vous n'aimez pas ce qui va arriver.

if (ttt == 0) ttt = 5;

S'il vous plaît noter que cette question semble avoir rien à voir avec Android, et est donc mal étiquetés.

0
Thane Anthem