Android功能
PHP示例:
function HaHa($a = "Test")
{
print $a;
}
问题是如何在android中做到这一点......
public void someFunction(int ttt = 5)
{
// something
}
上述解决方案不起作用,我该怎么办?
谢谢!
答案 0 :(得分:13)
不,Java不支持函数参数的默认值。这里有一篇关于借用语言功能的有趣帖子:http://java.dzone.com/news/default-argument-values-java
答案 1 :(得分:11)
您可以像这样滥用重载:
int someMethod() { return someMethod(42); }
int someMethod(int arg) { .... }
答案 2 :(得分:9)
不需要重载任何东西,只需写下:
public int getScore(int score, Integer... bonus)
{
if(bonus.length > 0)
{
return score + bonus[0];
}
else
{
return score;
}
}
答案 3 :(得分:4)
您可以使用3 dots
语法:
public void doSomething(boolean... arg1) {
boolean MyArg1= (arg1.length >= 1) ? arg1 : false;
}
答案 4 :(得分:1)
您可以使用重载功能。 重载也没问题,但是如果您需要多个参数的默认值,您最终将创建具有所有可能的默认参数组合的方法,对于您使用的示例,您想要为3个参数设置默认值。你最终会得到这个
"dependencies": {
"@angular/common": "2.0.0-rc.4",
"@angular/compiler": "2.0.0-rc.4",
"@angular/core": "2.0.0-rc.4",
"@angular/http": "2.0.0-rc.4",
"@angular/platform-browser": "2.0.0-rc.4",
"@angular/platform-browser-dynamic": "2.0.0-rc.4",
"@angular/platform-server": "2.0.0-rc.4",
"@angular/router": "3.0.0-beta.2",
"@angular/router-deprecated": "2.0.0-rc.2",
"nativescript-angular": "next",
"reflect-metadata": "^0.1.5",
"tns-core-modules": "2.2.1",
"email-validator": "^1.0.4",
"nativescript-social-share": "^1.2.0"
},
"devDependencies": {
"babel-traverse": "6.13.0",
"babel-types": "6.13.0",
"babylon": "6.9.0",
"lazy": "1.0.11",
"nativescript-dev-typescript": "^0.3.2",
"typescript": "^1.8.10"
}
所以这是我为我做的黑客攻击,你也可以使用
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);
}
我在这里找到示例java-default-parameter-values
答案 5 :(得分:1)
您现在可以使用Kotlin在Android中完成此操作! Kotlin支持default arguments,因此您可以编写如下函数:
fun addTheBook(title: String, author : String = "No Name"){...}
然后您可以像调用它一样
addTheBook("The Road Less Traveled")
答案 6 :(得分:0)
Java不支持可以执行所需操作的语法。
也许在someFunction(int)的开头,你可以检查传入的值,如果你不喜欢它的内容,你可以分配一个不同的值。
if (ttt == 0) ttt = 5;
请注意,此问题似乎与Android无关,因此标记不正确。