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