web-dev-qa-db-ja.com

Android:引数変数のデフォルト値を設定する方法

Android関数

PHPの例:

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

問題は、Androidでそれを行う方法です...

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

上記の解決策が機能しない場合、どうすればよいですか?

ありがとう!

19
M.V.

いいえ、Javaは関数パラメーターのデフォルト値をサポートしていません。言語機能の借用に関する興味深い投稿があります: http://Java.dzone.com/news/default-argument -values-Java

13
Bendihossan

次のようにオーバーロードを悪用することができます:

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

何もオーバーロードする必要はありません、ただ書いてください:

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

3 dots構文:

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

関数のオーバーロードを使用できます。オーバーロードも問題ありませんが、複数の引数にデフォルト値が必要な場合は、デフォルト引数のすべての可能な組み合わせで多くのメソッドを作成することになります。たとえば、3つの引数にデフォルト値を設定したい場合などに使用します。あなたはこれで終わります

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) {  }

だから私がここで私がやったハックは、あなたも使うことができます

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);
}

上記のコードは結果を生成します

false
true

ここで例を見つけます Java-default-parameter-values

1
Jigar Shah

Javaは、必要な構文をサポートしていません。

おそらくsomeFunction(int)の開始時に、着信する値を確認し、着信する内容が気に入らない場合は別の値を割り当てることができます。

if (ttt == 0) ttt = 5;

この質問はAndroidとは関係がないように見えるため、不適切にタグ付けされています。

0
Thane Anthem