我正在思考这个,
我在标签上设置了swt工具提示。将调用tooltip方法setTooltip(message)将从另一个类调用,setMessage(message)将在将创建tooltip对象的类中设置。现在我在设置工具提示消息之前检查null或空条件否则会抛出IllegalArgumentException。所以我的代码是这样的
public void setTooltip(String message) {
if (message != null && !message.isEmpty()) {
tooltip.setMessage(message);
label.addMouseTrackListener(mouseTrackListener);
iconLabel.addMouseTrackListener(mouseTrackListener);
} else {
label.removeMouseTrackListener(mouseTrackListener);
iconLabel.removeMouseTrackListener(mouseTrackListener);
}
}
我需要在else条件中使用一个选项,因为如果传递null并且工具提示尚未与侦听器关联,则控件将移至removeListener行eben。
我不知道控制流是如何发生的。有人可以详细说明这一点。 我会在else条件下明确地将工具提示设置为空字符串,因此在工具提示中没有设置某个先前值的机会,例如
else {
tooltip.setMessage("");
label.removeMouseTrackListener(mouseTrackListener);
iconLabel.removeMouseTrackListener(mouseTrackListener);
}
这样,如果需要,调用者可以将null / empty传递给此方法以删除工具提示。这可能吗?如果是这样,上述其他条件如何工作以及控制如何流动?我应该有一个我不想删除的其他条件,但我需要知道如何实现这一点。