gpt4 book ai didi

java - J2me RecordStore 错误 : java. lang.NullPointerException: 0 - 下面的代码有什么问题

转载 作者:行者123 更新时间:2023-12-01 15:41:45 25 4
gpt4 key购买 nike

下面所示的功能有什么问题吗?我在调试器中运行此代码时发现的唯一错误是“java.lang.NullPointerException: 0”。我浪费了最后几个小时来弄清楚“是什么导致了这个错误”,请有人帮忙。

 public String[] addRECORD(String mydata){
String[] output = null;
try {
RecordStore rs = null;
String sb = null;
RecordStore.openRecordStore(REC_STORE, true);
if (mydata.equals("Logged")) {
byte[] recData = new byte[5];
int len;
for(int i = 1; i <= rs.getNumRecords(); i++){
if(rs.getRecordSize(i) > recData.length){
recData = new byte[rs.getRecordSize(i)];
}
len = rs.getRecord(i, recData, 0);
sb += new String(recData, 0, len);
}
if (sb != null) {
output[0] = "rexists";
output[1] = sb.trim();
} else {
output[0] = "notlogged";
output[1] = sb.trim();
}
}else{
byte[] rec = mydata.getBytes();
try{
rs.addRecord(rec, 0, rec.length);
}catch (Exception e){}
output[0] = "radded";
output[1] = mydata;
}
rs.closeRecordStore();
} catch (RecordStoreException ex) {
responder(ex.getMessage());
}
return output;
}

最佳答案

如果传递给函数的字符串为空,则可能会出现第一个空指针异常

 if (mydata.equals("Logged")) {

将其更改为 if ("Logged".equals(myData)) {

第二个空指针异常可能会出现在这里,您无法在空对象上调用函数

for(int i = 1; i <= rs.getNumRecords(); i++){

初始化rs

第三个 NUll 指针异常可能出现在这里

output[0] = "rexists";
output[1] = sb.trim();

由于数组输出未初始化,因此将数组初始化为String [] output = new String[2]

关于java - J2me RecordStore 错误 : java. lang.NullPointerException: 0 - 下面的代码有什么问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7933524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com