如何确保代码块仅执行ONCE且仅执行ONCE。永远不会

时间:2015-05-03 18:22:05

标签: java

我尝试过创建一个公共静态变量(NOT LOCAL)并故意增加它并告诉Java:

"如果此变量== 0,则执行此代码"

因此,即使第二次调用该方法,该代码块也不会执行,因为变量已经改变并且不再为零......并且它将永远不会再为零,因为它会不断增加。

public void actionPerformed(ActionEvent e){
  if(e.getSource()==deal){/*do something*/}
}

我的问题是当按下按钮时,if语句会执行多次"处理"。

2 个答案:

答案 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());
}