在 if 条件中组合 2 个方法调用
combining 2 method calls in an if-condition
我有两个函数,我想同时调用它们
第一个问题:如果两者都为真,一些操作将执行(在这个例子中添加标志)。这样称呼他们正确吗?
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;
}
第二个问题:如果我想否定其中一个功能,我会怎么做?
在Java中,&
是按位与,|
是按位或。对于逻辑运算,您应该使用逻辑运算符 &&
和 ||
.
使用短路 AND 运算符会更正确:
if (getCallId()==1 && getCallState()==1 )
或者更好,将方法更改为 return 布尔值:
public boolean getCallState()
{
return MiniSipService.m_callState == 1;
}
public boolean getCallId()
{
return MiniSipService.m_callId == 1;
}
并将条件更改为:
if (getCallId() && getCallState())
当然,如果 m_callId
和 m_callState
可以有两个以上的状态,这个改变就没有意义了,但我假设他们有两个状态基于你的问题的措辞:
I want to call both of them and if both of them are true...
我有两个函数,我想同时调用它们
第一个问题:如果两者都为真,一些操作将执行(在这个例子中添加标志)。这样称呼他们正确吗?
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;
}
第二个问题:如果我想否定其中一个功能,我会怎么做?
在Java中,&
是按位与,|
是按位或。对于逻辑运算,您应该使用逻辑运算符 &&
和 ||
.
使用短路 AND 运算符会更正确:
if (getCallId()==1 && getCallState()==1 )
或者更好,将方法更改为 return 布尔值:
public boolean getCallState()
{
return MiniSipService.m_callState == 1;
}
public boolean getCallId()
{
return MiniSipService.m_callId == 1;
}
并将条件更改为:
if (getCallId() && getCallState())
当然,如果 m_callId
和 m_callState
可以有两个以上的状态,这个改变就没有意义了,但我假设他们有两个状态基于你的问题的措辞:
I want to call both of them and if both of them are true...