0
逃脫這是我收集:如何從ClassCastException異常
db.power.find().pretty()
{
"_id" : ObjectId("513e4022cc6d8d7ff2c83239"),
"Indicator" : "One",
"sex" : "male"
}
如何從ClassCastException
逃脫?
import java.net.UnknownHostException;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.Mongo;
public class Test {
public static void main(String args[]) throws UnknownHostException {
Mongo mongo = new Mongo();
DB db = mongo.getDB("at");
DBCollection testdata = db.getCollection("power");
BasicDBObject query = new BasicDBObject();
query.put("Indicator", "One");
PowerData data = (PowerData) testdata.findOne(query);
System.out.println(data.getSize());
}
}
import com.mongodb.BasicDBObject;
public class PowerData extends BasicDBObject{
public String getSize() {
return (String) get("sex");
}
public void setSize(String sex) {
put("sex", sex);
}
public String getIndicator() {
return (String) get("Indicator");
}
public void setIndicator(String Indicator) {
put("Indicator", Indicator);
}
public String getId() {
return (String) get("_id");
}
public void setId(String _id) {
put("_id", _id);
}
}
在線程異常 「主要」 java.lang.ClassCastException:com.mongodb.BasicDBObject不能Test.main被轉換爲PowerData (Test.java:19)
您正試圖將BasicDBObject強制轉換爲擴展BasicDBObject的對象。這是無效的,因爲BasicDBObject不是一個PowerData對象(如果你試圖將一個實例化的PowerData轉換爲BasicDBObject,那很好)。您可以實例化並將PowerData對象傳遞給findOne()而不是BasicDBObject。 – 2013-03-11 20:52:30
謝謝,我將PowerData對象傳遞給findOne(),但仍得到相同的ClassCastExcetion。 – Pawan 2013-03-11 20:57:37
這是一個Java問題,而不是mongoDB問題,順便說一句。您可能想要修復問題上的標籤。 – 2013-03-11 23:26:29