使用类似三元的方法调用方法
Use ternary alike method for calling methods
众所周知,您可以像这样使用三元运算符:
String testString = "test";
int myInt = testString.equals("test") ? 1 : 2;
但是,我该如何使用方法呢?
假设我有以下内容:
String testString = "test";
if (testString.equals("test") {
doSomething();
} else {
doSomethingElse();
}
有没有什么东西可以像下面这样组合起来:
testString.equals("test") ? doSomething() : doSomethingElse();
在 Android studio 中使用时,会显示 "not a statement"
编辑
可以通过初始化一个局部变量来完成,但是有点不寻常。
public void test() {
String testString = "test";
boolean test = testString.equals("test") ? doSomething() : doSomethingElse();
}
public boolean doSomething() {
return true;
}
public boolean doSomethingElse() {
return false;
}
你只能写
testString.equals("test") ? doSomething() : doSomethingElse();
if doSomething()
和 doSomethingElse()
都是 return something,并且那些 somethings 要么具有完全相同的类型,要么是 covariant 类型。将两个函数设置为 return a boolean
就足够了。
这是因为整个东西是一个表达式,而一个表达式有一个值和一个明确定义的类型。
如果您不想对 return 值执行任何操作,请使用 if
语句。
众所周知,您可以像这样使用三元运算符:
String testString = "test";
int myInt = testString.equals("test") ? 1 : 2;
但是,我该如何使用方法呢? 假设我有以下内容:
String testString = "test";
if (testString.equals("test") {
doSomething();
} else {
doSomethingElse();
}
有没有什么东西可以像下面这样组合起来:
testString.equals("test") ? doSomething() : doSomethingElse();
在 Android studio 中使用时,会显示 "not a statement"
编辑 可以通过初始化一个局部变量来完成,但是有点不寻常。
public void test() {
String testString = "test";
boolean test = testString.equals("test") ? doSomething() : doSomethingElse();
}
public boolean doSomething() {
return true;
}
public boolean doSomethingElse() {
return false;
}
你只能写
testString.equals("test") ? doSomething() : doSomethingElse();
if doSomething()
和 doSomethingElse()
都是 return something,并且那些 somethings 要么具有完全相同的类型,要么是 covariant 类型。将两个函数设置为 return a boolean
就足够了。
这是因为整个东西是一个表达式,而一个表达式有一个值和一个明确定义的类型。
如果您不想对 return 值执行任何操作,请使用 if
语句。