谁能告诉我为什么这些不起作用?如果这些对我有用,它会回答我的所有问题,请帮助我:
for (int i = 0; i < records.size(); i++) {
JSONObject jsonObject = new JSONObject();
if (Scanner.listOfBarcodes.contains(records.get(i).getsid())) {
jsonObject.put("attendance","Present");
} else {
jsonObject.put("attendance","Absent");
}
listOfBarcodes
是一个ArrayList
,其中包含一系列扫描的条形码值,这些值是3924,3922...
但它始终将缺席置于JSONObject
。为什么会这样?请帮我。
这是我的可序列化java类:
public class Student {
private String sid;
public void setsid(String sid){
this.sid=sid;
}
public String getsid(){
return sid;
}
}
答案 0 :(得分:0)
我可能能够通过更多代码更好地帮助确保答案,但我相信问题是函数contains()
期望作为参数获取相同类型的对象从它调用的ArrayList。
您需要调试它并检查records.get(i).getsid()
的返回值与ArrayList listOfBarcodes
的类型相同。
也许尝试将其分配给临时值,如下所示并检查它返回的内容并与此临时项进行比较,问题可能在于保存值而不是检索它(您的调用可能返回null)< / em>如下:
String tempSid = records.get(i).getsid();
if (Scanner.listOfBarcodes.contains(tempSid)) {
jsonObject.put("attendance","Present");
}