Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java &引用;return";没有返回到调用函数_Java_Loops_Return - Fatal编程技术网

Java &引用;return";没有返回到调用函数

Java &引用;return";没有返回到调用函数,java,loops,return,Java,Loops,Return,我想在收件箱中搜索主题行的电子邮件,电子邮件需要一些时间才能进入邮箱。若在迭代中并没有找到电子邮件,那个么等待一段时间并再次搜索电子邮件,当找到电子邮件时返回true public boolean searchForEmail(String MySubject, String linkAddress, String attachment) { boolean flag = false; List<WebElement> unreademeil = driver.fin

我想在收件箱中搜索主题行的电子邮件,电子邮件需要一些时间才能进入邮箱。若在迭代中并没有找到电子邮件,那个么等待一段时间并再次搜索电子邮件,当找到电子邮件时返回true

public boolean searchForEmail(String MySubject, String linkAddress, String attachment) {
    boolean flag = false;
    List<WebElement> unreademeil = driver.findElements(By.xpath(""));
    for (int i = 0; i < unreademeil.size(); i++) {
        if ((unreademeil.get(i).isDisplayed()) == true) {
            System.out.println(unreademeil.get(i).getText());
            if (unreademeil.get(i).getText().contains(MySubject)) {
                unreademeil.get(i).click();
                flag=true;
                break;
            }
        }
    }
    if (!flag) {
        System.out.println("No mail with Subject ::--:: " + MySubject);
        while (counter < 40 && !flag) {
            sleep(10000);
            counter++;
            cloop();
        }
        SoftAssertor.asserTrue(isElementPresent("//*[contains(@text()='" + MySubject + "')]"),
                "Failed to search a email with Subject line  ::: " + MySubject);
    }
return flag; 
}



public void cloop(){
searchForEmail(SubjectLine, seeDetailsLink, "xpath");
}
public boolean searchForEmail(字符串MySubject、字符串linkAddress、字符串附件){
布尔标志=假;
List unreademeil=driver.findElements(By.xpath(“”);
对于(int i=0;i
上面的程序是搜索主题行的电子邮件。有时收到一封电子邮件需要时间。所以这个程序是睡眠后继续搜索(10000)

问题出现在return语句中,即使while循环的条件不满足,也会将return flag语句重定向到while循环下的“cloop()”,即“flag==true”;
由于这个程序在无限循环中运行。请帮助

重构是一种解决方案:

public boolean searchForEmail(String MySubject, String linkAddress, String attachment) {
        boolean flag = false;
        sleep(200);
        List<WebElement> unreademeil = driver.findElements(By.xpath("//*[@class='bqe']"));
        for (int i = 0; i < unreademeil.size(); i++) {
            if ((unreademeil.get(i).isDisplayed()) == true) {
                System.out.println(unreademeil.get(i).getText());
                if (unreademeil.get(i).getText().contains(MySubject)) {
                    unreademeil.get(i).click();
                    flag=true;
                    break;
                }
            }
        }
        return flag=true
    }

    public boolean isSearchPassed(String MySubject, String linkAddress, String attachment){
        boolean flag= false;
        int count =0;
        while (!searchForEmail( MySubject, linkAddress,  attachment) && (count< 45)) {
            sleep(10000);count++;   
        }
        return flag=true;
    }
public boolean searchForEmail(字符串MySubject、字符串linkAddress、字符串附件){
布尔标志=假;
睡眠(200);
List unreademeil=driver.findElements(By.xpath(“/*[@class='bqe']);
对于(int i=0;i
您应该编写
flag=cloop()您需要考虑重构此代码。你有两种方法互相调用。这是一个无限循环的好机会,内存溢出异常。请考虑1)改变Copope()以返回一个布尔值(如Chetan Ranpariya建议的,2)将拼写更改为<代码>未读邮件< /代码>,3)确保在进入“时”循环之前正确设置< <代码>计数器> /代码>。和- 4)是的:请考虑重构。你好Chetan Thanks回应,请详细说明。flag=cloop();cloop()函数只是再次调用searchForEmail()函数。所以cloop函数的返回类型是void。谢谢paulsm4,云,你们能告诉我重构的结构吗?