请提供建议,如果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
答案 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);
}
希望这个答案..