在if条件中组合2个方法调用

时间:2015-05-20 07:05:34

标签: java call

我有两个函数,我想调用它们
第一个问题:如果它们都为真,则会执行某些操作(在此示例中添加标记)。打电话给他们是对的吗?

    if (getCallId()==1 & getCallState()==1 )
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
            | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED

          | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON

            | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
public int getCallState()
{
    return MiniSipService.m_callState;
}
    public int getCallId()
{
    return MiniSipService.m_callId;
}

第二个问题:如果我想否定其中一项功能,该怎么办?

2 个答案:

答案 0 :(得分:1)

在Java中&是按位AND,|是按位OR。对于逻辑运算,您应该使用逻辑运算符&&||

答案 1 :(得分:1)

使用短路AND运算符更为正确:

if (getCallId()==1 && getCallState()==1 )

甚至更好,更改方法以返回布尔值:

public boolean getCallState()
{
    return MiniSipService.m_callState == 1;
}

public boolean getCallId()
{
    return MiniSipService.m_callId == 1;
}

并将条件更改为:

if (getCallId() && getCallState())

当然,如果m_callIdm_callState可以有两个以上的状态,这种变化就会变得不那么合理,但我认为他们根据你的问题的措辞有两种状态:

  

如果两者都是真的,我想打电话给他们和 ......