Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android:如何设置参数变量的默认值_Java_Variables_Arguments_Default - Fatal编程技术网

Java Android:如何设置参数变量的默认值

Java Android:如何设置参数变量的默认值,java,variables,arguments,default,Java,Variables,Arguments,Default,安卓功能 PHP示例: function HaHa($a = "Test") { print $a; } 问题是如何在android中实现它 public void someFunction(int ttt = 5) { // something } 上面的解决方案不起作用,我怎么做 谢谢 否,Java不支持函数参数的默认值。这里有一篇关于借用语言特性的有趣帖子:Java不支持可以实现您想要的功能的语法 也许在someFunction(int)的开头,您可以检查传入的值,如果

安卓功能

PHP示例:

function HaHa($a = "Test")
{
    print $a; 
}
问题是如何在android中实现它

public void someFunction(int ttt = 5)
{
   // something
}
上面的解决方案不起作用,我怎么做


谢谢

否,Java不支持函数参数的默认值。这里有一篇关于借用语言特性的有趣帖子:

Java不支持可以实现您想要的功能的语法

也许在someFunction(int)的开头,您可以检查传入的值,如果您不喜欢传入的值,可以指定一个不同的值

if (ttt == 0) ttt = 5;

请注意,此问题似乎与android无关,因此标记不正确。

您可以这样滥用重载:

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

无需过载,只需写下:

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

可以使用重载函数。 重载也可以,但是如果您需要多个参数的默认值,那么最终将创建具有所有可能的默认参数组合的多个方法,例如,您使用的示例假设您想要为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

我在这里找到了一个示例

您可以使用
3点
语法:

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

你现在可以通过使用Kotlin在Android中实现这一点! Kotlin支持,因此您可以编写如下函数:

fun addTheBook(title: String, author : String = "No Name"){...}
然后你可以这样称呼它:

addTheBook("The Road Less Traveled")

我不认为我们可以在Java中做到这一点。如果我没记错的话,我可以随便猜测一下,这是Java7应该具备的一个特性。因此,在这种情况下,可以检查变量
ttt
是否为空,如果为空,则为其赋值。相关:我认为可能是重复的,但本机函数以某种方式支持它。。。我真的记不起来了。。。或者,例如JSONArray可以从不同的源构建:String、JSONTokener x、Collection或blank。。。我想可能会有解决办法。我的解决办法是将字符串[]放入其中,并可以添加或删除参数……我认为这样更好。它可以简化为
return bonus.length>0?分数+奖金[0]:分数