我正在探索另一个线程给出的答案: Can you reset a static variable? 但是我的查询没什么不同:
static int counter = 1;
public void captureField(String fieldValue, String type) throws Throwable {
String value = "Hello";
writeFieldValue(value, type, counter++);
}
public static void writeFieldValue(String fieldValue, String type, int counter) throws IOException {
*//File Handling code here*
sheet.getRow(counter).getCell(5).setCellValue(fieldValue);
}
上面的代码在第一种情况下可以正常工作,在这种情况下,计数器会适当增加以在单元格中顺序添加fieldValue。但是,要执行下一个方案,计数器值应重置为1。
问题是:
针对特定情况执行后,“计数器”值未重置为1,并抛出java.lang.NullPointerException。
答案 0 :(得分:0)
我有解决方案。添加了另一个静态变量“ txnTypex”,该变量将继续检查类型值,并且每当该值更改时,计数器都将重置为1。
static int counter = 1;
static String txnTypex = "";
public void captureField(String fieldValue, String type) throws Throwable {
String value = "Hello";
if(!txnTypex.equals(txnType))
counter=1;
writeFieldValue(value, type, counter++);
txnTypex=txnType;
}