就像我们现在一样,你可以使用这样的三元运算符:
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中使用它时,会导致说出"而不是声明"
修改 可以通过初始化局部变量来完成,但这有点不寻常。
public void test() {
String testString = "test";
boolean test = testString.equals("test") ? doSomething() : doSomethingElse();
}
public boolean doSomething() {
return true;
}
public boolean doSomethingElse() {
return false;
}
答案 0 :(得分:2)
你只能写
testString.equals("test") ? doSomething() : doSomethingElse();
如果doSomething()
和doSomethingElse()
都返回某些内容,并且这些内容具有完全相同的类型,或者是协变类型。设置两个函数以返回boolean
就足够了。
这是因为整个事物是表达式,而表达式具有一个值以及一个定义良好的类型。
如果您不想对返回值执行任何操作,请使用if
语句。