ArrayList方法返回值处理

时间:2014-05-29 07:15:44

标签: java arraylist

请提供建议,如果Array List方法返回空值,

public ArrayList<String> getNewRenewals() {
    ArrayList<String> getNewStatusRenewals = new ArrayList<String>();
    List<WebElement> allRows = renewaltable.findElements(By.tagName("tr"));
    String rowvalue = "";

    for (int row = 1; row <= allRows.size(); row++) {
        String newRenewals = driver
                .findElement(
                        By.xpath("//*[@id='tblRenewals']/tbody/tr[" + row
                                + "]/td[8]")).getText().trim();
        if ("New".equals(newRenewals)) {
            rowvalue = Integer.toString(row);
            getNewStatusRenewals.add(rowvalue);
            return getNewStatusRenewals;
        }
    }
    return null;
}

搜索表并找到可用的“New”行值,如果“New”可用,那么它在Arraylist中存储该行值并返回相同的

在执行“New”值期间的某个时间表中没有,所以在这种情况下如何处理return语句

并将此返回方法分配给另一个Arraylist方法

public ArrayList<String> accessNewStatusRenewals() {
    ArrayList<String> newStatus = new ArrayList<String>();
    newStatus = getNewRenewals();

    if (!newStatus.isEmpty()) {

        String newStatusRow = newStatus.get(0);

        String getID = driver.findElement(
                By.xpath("//*[@id='tblRenewals']/tbody/tr[" + newStatusRow
                        + "]/td[1]")).getText();
        newStatus.add(getID);

所以如果方法“getNewRenewals()”返回null,那么我该如何处理这个accessNewStatusRenewals()方法的返回值

prabu

2 个答案:

答案 0 :(得分:2)

如果我理解你的问题,那么

ArrayList<String> getNewStatusRenewals = new ArrayList<String>();

这创建一个新对象,因此null是不可能的,所以没有问题。

一个建议是使用break而不是return getNewStatusRenewals,最后可以返回null。所以你可以知道在代码中执行了哪种情况。

public ArrayList<String> getNewRenewals() {
    ArrayList<String> getNewStatusRenewals = new ArrayList<String>();
    List<WebElement> allRows = renewaltable.findElements(By.tagName("tr"));
    String rowvalue = "";

    for (int row = 1; row <= allRows.size(); row++) {
        String newRenewals = driver
                .findElement(
                        By.xpath("//*[@id='tblRenewals']/tbody/tr[" + row
                                + "]/td[8]")).getText().trim();
        if (newRenewals.equals("New")) {
            rowvalue = Integer.toString(row);
            getNewStatusRenewals.add(rowvalue);
           return getNewStatusRenewals;
        }
    }
    return null;
}

答案 1 :(得分:0)

上面的方法将始终返回一个非空的arraylist,应该是这种情况。

Joshua Bloch撰写的有效Java第2版 第43项:返回空数组或集合,而不是空值

在客户端,可以使用isEmpty方法然后处理结果...类似

    ArrayList<String> output = getNewRenewals();


    if (output.isEmpty()){
        System.out.println("Empty");
    } else {
        System.out.println("Not Empty");
                    output.get(0);
    }

希望这个答案..