使用 for 循环跳过空值

Skipping null values using a for loop

DB_Example 我正在探索数据库的自动化测试,并努力解决 table.

中的空值问题

我要测试:

  1. 如果EID1 =< 8且CID1以M开头,打印通过,否则打印失败。

  2. 如果EID2 =< 8且CID2以M开头,打印通过,否则打印失败。

存在空值,我收到以下错误:无法调用“String.startsWith(String)”,因为 java.util.Map.get(object) 的 return 值为空。

我的第一个值总是空值,所以我从计数器 1 开始循环,这解决了那个问题,但是我的 table 中的 EID 和 CID 中都有空值。如果不满足条件(即值为 null),如果测试失败也没关系,但是我的应用程序在达到任何 null 值时崩溃。我可以更改什么以避免崩溃和过滤空值?我一直无法解决。尝试添加 nullpointerexception 和一些摆弄循环但没有运气。我已经包含了 table 的示例图片以供参考。

Map<String, String> result = new HashMap<>();
Map<String, String> result = new HashMap<String, String>();
query = "select * FROM DEA.TUSET where T_DATE >'2010-11-02'";
resultSet = statement.executeQuery(Query)
ResultSetMetaData rsmd = resultSet.getMetaData();
long pId = 1:
while (resultSet.next()) {
for int col = 1; col <= rsmd.getColumnCount(); col ++) {
result.put(rsmd.getColumnLabel(col)+pId, resultSet.getString(col)); }
pId ++;
}
//print all results in col
for (int i=0; i<pId;i++)
System.out.println("EID: "+result.get("EID"+i));

//problem
for (int i=1; i<pId;i++)
if (result.get("EID"+i).startsWith("8"){
if result.get("CID"+i).startsWith("M") {
System.out.println ("true");
}
}

在检查 startsWith() 之前,检查该值是否为空。

if(result.get("EID"+i)!=null && result.get("CID"+i)!=null ){
    //your code to execute
}
else {
    // some code to execute if the value is null
}