我尝试过创建一个公共静态变量(NOT LOCAL)并故意增加它并告诉Java:
"如果此变量== 0,则执行此代码"
因此,即使第二次调用该方法,该代码块也不会执行,因为变量已经改变并且不再为零......并且它将永远不会再为零,因为它会不断增加。
public void actionPerformed(ActionEvent e){
if(e.getSource()==deal){/*do something*/}
}
我的问题是当按下按钮时,if语句会执行多次"处理"。
答案 0 :(得分:3)
尝试类似:
public class Test {
private boolean isExecuted;
public synchronized void executeOnce() {
if (isExecuted) {
return;
} else {
//do your stuff
isExecuted = true;
}
}
}
根据您的要求修改它。要提高性能,可以使用双重检查锁定。
答案 1 :(得分:0)
尝试这种方式,它是虚拟代码,但通过这种方式,您只能执行一次inner for loop
代码。
List<WebElement> allelements = driver.findElements(By.id("id1"));
int i = 0;
for (WebElement e : allelements)
{
i++;
List<WebElement> secondelements = driver.findElements(By.id("id2"));
if(i==1)
{
for(WebElement ae : secondelements)
{
System.out.println(ae.getText());
}
}
System.out.println(e.getText());
}