Android的:如何设置默认值的参数变量
的Android功能Android的:如何设置默认值的参数变量
PHP例子:
function HaHa($a = "Test") { print $a; }
的问题是如何做到这一点的机器人......
public void someFunction(int ttt = 5)
{
// something
}
上面的解决方案不起作用,我该怎么办?
谢谢!
没有,Java不支持的功能parameteres默认值。有一个关于借款语言有趣的讯息功能位置:http://java.dzone.com/news/default-argument-values-java
我这么认为,但原生函数以某种方式支持它......我实际上不记得一个......或者,例如JSONArray可以从不同的来源构建:字符串,JSONTokener x,集合集合或空白...我认为可以有工作 – 2011-04-07 13:02:30
好了解决我的问题是将String []放在里面,可以添加或删除参数。 .. – 2011-04-07 13:03:15
在这篇文章中它是很好的解决方法...谢谢! – 2011-04-07 14:16:10
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;
}
}
我觉得这样比较好。它可以简化,如'return bonus.length> 0?得分+奖金[0]:得分;' – Sithu 2016-02-25 07:25:29
可以使用重载函数。 重载也是可以的,但如果你需要多个参数的默认值,你最终会创建具有所有可能的默认参数组合的许多方法,假设你想为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);
}
上面的代码将genrate导致
false
true
我发现这里的例子java-default-parameter-values
执行像这样(3点):
public void doSomething(boolean... arg1) {
boolean MyArg1= (arg1.length >= 1) ? arg1: false;
}
我不认为我们能做到这一点在Java中。如果我没有记错的话,我可以大胆猜测这是Java 7中的一个特性。因此,在这种情况下,可以检查变量'ttt'是否为null,如果它的null ,给它分配一个值。 – 2011-04-07 12:55:54
相关:不支持Java默认参数值?(http://stackoverflow.com/questions/997482/does-java-support-default-parameter-values) – eldarerathis 2011-04-07 12:57:20
[Java的可选参数]的可能的复制(HTTP:/ /stackoverflow.com/questions/965690/java-optional-parameters) – 2017-01-12 08:29:54