使用三元方法调用方法

时间:2017-06-06 13:37:37

标签: java android methods operators ternary-operator

就像我们现在一样,你可以使用这样的三元运算符:

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;
}

1 个答案:

答案 0 :(得分:2)

你只能写

testString.equals("test") ? doSomething() : doSomethingElse();

如果doSomething()doSomethingElse()都返回某些内容,并且这些内容具有完全相同的类型,或者是协变类型。设置两个函数以返回boolean就足够了。

这是因为整个事物是表达式,而表达式具有一个值以及一个定义良好的类型。

如果您不想对返回值执行任何操作,请使用if语句。