對於Java來說是新手,對不起,如果這個明顯的錯誤。此外,我試圖搜索與我的問題有關的所有問題,但他們都沒有解決。mongoDB + Java-8:java.lang.NullPointerException:對於用戶沒有任何價值
我試圖獲取mongoDB集合中的所有文檔,並將它們放入數組中。 上午正確讀取的文件,我可以全部打印出來在控制檯:
public List<Item> findAll() {
List<Item> items = new ArrayList<>();
try {
collection.find().forEach(document -> {
System.out.println(document);
});
return items;
} catch (Exception e) {
System.out.println("Error fetcing all items " + e);
return items; // should be logging
}
}
然而
當我添加這兩條線:
System.out.println(document);
Item item = new Item((BasicDBObject) document); //line causing the error
items.add(item);//line causing the error
我得到這個錯誤:
java.lang.NullPointerException: no value for: users
的商品分類代碼:
package io.app.item.model;
import com.mongodb.BasicDBObject;
import org.bson.types.ObjectId;
import java.util.Date;
public class Item {
private final String id;
private final String name;
private final int users;
private Date updated_at = new Date();
private Date created_at = new Date();
public Item(BasicDBObject dbObject) {
this.id = ((ObjectId) dbObject.get("_id")).toString();
this.name = dbObject.getString("name");
this.users = dbObject.getInt("users");
this.updated_at = dbObject.getDate("updated_at");
this.created_at = dbObject.getDate("created_at");
}
public String getId() {
return id;
}
public int getUsers() {
return users;
}
public String getName() {
return name;
}
}
我註釋掉從Item
類提起users
然後一切工作沒有真正的工作我還是不知道爲什麼加入integer
類型的字段也導致了問題的時候刪除它換來的是在這種形狀:
[[email protected], [email protected]]
請注意使用mongoldb 3.4.1驅動程序。 文件示例:
{
"_id": {
"$oid": "586140b25fa86a1e760d92fe"
},
"name": "item1",
"created_at": {
"$date": "2016-12-26T16:09:22.949Z"
}
}
請[編輯]你的問題包括與空指針異常進入整個堆棧跟蹤。你還應該包含這個'Item'類的源代碼。 – Kenster
添加了仍然試圖弄清楚如何包含堆棧跟蹤的項目類代碼。 – user3462064