Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.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 我不希望我的函数返回null。最好的解决方案是什么? public T单击子菜单项(菜单栏菜单栏){ int hoveredMenuItemIndex=mouseOverToMenuItemByTitle(menuBar.menuOptionTitle); 如果(hoveredMenuItemIndex>-1) { allSubMenuItem=getWebElements(By.cssSelector(“#topnav>.rootmenu>li:n子项(“+hoveredMenuItemIndex+”)>ul>li>a”); for(WebElement子菜单项:AllSub菜单项){ if(subnumitem.getAttribute(“title”).contains(menuBar.subnumtitle)){ 子菜单项。单击(); 返回InstancePageClass((Class)menuBar.expectedPageClass); } } } 返回null; }_Java_Selenium Webdriver_Automation - Fatal编程技术网

Java 我不希望我的函数返回null。最好的解决方案是什么? public T单击子菜单项(菜单栏菜单栏){ int hoveredMenuItemIndex=mouseOverToMenuItemByTitle(menuBar.menuOptionTitle); 如果(hoveredMenuItemIndex>-1) { allSubMenuItem=getWebElements(By.cssSelector(“#topnav>.rootmenu>li:n子项(“+hoveredMenuItemIndex+”)>ul>li>a”); for(WebElement子菜单项:AllSub菜单项){ if(subnumitem.getAttribute(“title”).contains(menuBar.subnumtitle)){ 子菜单项。单击(); 返回InstancePageClass((Class)menuBar.expectedPageClass); } } } 返回null; }

Java 我不希望我的函数返回null。最好的解决方案是什么? public T单击子菜单项(菜单栏菜单栏){ int hoveredMenuItemIndex=mouseOverToMenuItemByTitle(menuBar.menuOptionTitle); 如果(hoveredMenuItemIndex>-1) { allSubMenuItem=getWebElements(By.cssSelector(“#topnav>.rootmenu>li:n子项(“+hoveredMenuItemIndex+”)>ul>li>a”); for(WebElement子菜单项:AllSub菜单项){ if(subnumitem.getAttribute(“title”).contains(menuBar.subnumtitle)){ 子菜单项。单击(); 返回InstancePageClass((Class)menuBar.expectedPageClass); } } } 返回null; },java,selenium-webdriver,automation,Java,Selenium Webdriver,Automation,此函数返回一个类,但如果未单击菜单项,则不应返回任何内容并失败。我不想使用null,也不允许使用try-catch块 在Java 8中,将返回类型更改为,然后返回或 然后调用方可以调用,如果为true,则可以调用以获取实际值。检查javadoc以了解其他有用的方法 public <T extends BasePage> T clickSubMenuItem(MenuBar menuBar) { int hoveredMenuItemIndex =mouseOverTo

此函数返回一个类,但如果未单击菜单项,则不应返回任何内容并失败。我不想使用null,也不允许使用try-catch块

在Java 8中,将返回类型更改为,然后返回或

然后调用方可以调用,如果为true,则可以调用以获取实际值。检查javadoc以了解其他有用的方法

    public <T extends BasePage> T clickSubMenuItem(MenuBar menuBar) {
    int hoveredMenuItemIndex =mouseOverToMenuItemByTitle(menuBar.menuOptionTitle);
    if (hoveredMenuItemIndex > -1) 
    {
     allSubMenuItem = getWebElements(By.cssSelector("#topnav > .rootmenu > li:nth-child(" + hoveredMenuItemIndex + ") > ul > li > a"));
        for (WebElement subMenuItem : allSubMenuItem) {
            if (subMenuItem.getAttribute("title").contains(menuBar.subMenuTitle)) {
                subMenuItem.click();
                return instantiatePageClass((Class<T>) menuBar.expectedPageClass);
            }
        }
    }
    return null;
}
public可选点击子菜单项(菜单栏菜单栏){
int hoveredMenuItemIndex=mouseOverToMenuItemByTitle(menuBar.menuOptionTitle);
如果(hoveredMenuItemIndex>-1){
allSubMenuItem=getWebElements(By.cssSelector(“#topnav>.rootmenu>li:n子项(“+hoveredMenuItemIndex+”)>ul>li>a”);
for(WebElement子菜单项:AllSub菜单项){
if(subnumitem.getAttribute(“title”).contains(menuBar.subnumtitle)){
子菜单项。单击();
返回可选的.of(InstancePageClass((Class)menuBar.expectedPageClass));
}
}
}
返回可选的.empty();
}

在Java 8中,将返回类型更改为,然后返回或

然后调用方可以调用,如果为true,则可以调用以获取实际值。检查javadoc以了解其他有用的方法

    public <T extends BasePage> T clickSubMenuItem(MenuBar menuBar) {
    int hoveredMenuItemIndex =mouseOverToMenuItemByTitle(menuBar.menuOptionTitle);
    if (hoveredMenuItemIndex > -1) 
    {
     allSubMenuItem = getWebElements(By.cssSelector("#topnav > .rootmenu > li:nth-child(" + hoveredMenuItemIndex + ") > ul > li > a"));
        for (WebElement subMenuItem : allSubMenuItem) {
            if (subMenuItem.getAttribute("title").contains(menuBar.subMenuTitle)) {
                subMenuItem.click();
                return instantiatePageClass((Class<T>) menuBar.expectedPageClass);
            }
        }
    }
    return null;
}
public可选点击子菜单项(菜单栏菜单栏){
int hoveredMenuItemIndex=mouseOverToMenuItemByTitle(menuBar.menuOptionTitle);
如果(hoveredMenuItemIndex>-1){
allSubMenuItem=getWebElements(By.cssSelector(“#topnav>.rootmenu>li:n子项(“+hoveredMenuItemIndex+”)>ul>li>a”);
for(WebElement子菜单项:AllSub菜单项){
if(subnumitem.getAttribute(“title”).contains(menuBar.subnumtitle)){
子菜单项。单击();
返回可选的.of(InstancePageClass((Class)menuBar.expectedPageClass));
}
}
}
返回可选的.empty();
}

返回可选项并对其执行操作

例如:

public <T extends BasePage> Optional<T> clickSubMenuItem(MenuBar menuBar) {
    int hoveredMenuItemIndex =mouseOverToMenuItemByTitle(menuBar.menuOptionTitle);
    if (hoveredMenuItemIndex > -1) {
        allSubMenuItem = getWebElements(By.cssSelector("#topnav > .rootmenu > li:nth-child(" + hoveredMenuItemIndex + ") > ul > li > a"));
        for (WebElement subMenuItem : allSubMenuItem) {
            if (subMenuItem.getAttribute("title").contains(menuBar.subMenuTitle)) {
                subMenuItem.click();
                return Optional.of(instantiatePageClass((Class<T>) menuBar.expectedPageClass));
            }
        }
    }
    return Optional.empty();
}
可选的myMethod(){
//逻辑
返回可选的.empty();
}
myMethod.map(someClass::someAction).orElse(doWhatEverYouWantWhenNull);

有关可选的详细信息:

返回可选并对其执行操作

例如:

public <T extends BasePage> Optional<T> clickSubMenuItem(MenuBar menuBar) {
    int hoveredMenuItemIndex =mouseOverToMenuItemByTitle(menuBar.menuOptionTitle);
    if (hoveredMenuItemIndex > -1) {
        allSubMenuItem = getWebElements(By.cssSelector("#topnav > .rootmenu > li:nth-child(" + hoveredMenuItemIndex + ") > ul > li > a"));
        for (WebElement subMenuItem : allSubMenuItem) {
            if (subMenuItem.getAttribute("title").contains(menuBar.subMenuTitle)) {
                subMenuItem.click();
                return Optional.of(instantiatePageClass((Class<T>) menuBar.expectedPageClass));
            }
        }
    }
    return Optional.empty();
}
可选的myMethod(){
//逻辑
返回可选的.empty();
}
myMethod.map(someClass::someAction).orElse(doWhatEverYouWantWhenNull);

有关可选项的详细信息:

返回空对象抛出一个
ClassNotFoundException
?返回空对象抛出一个
ClassNotFoundException