[英]How to escape from 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(Test.java:19)上強制轉換為PowerData
您可以這樣更改PowerData
類:
public class PowerData extends BasicDBObject{
private BasicDBObject wrapped;
public PowerData(BasicDBObject o) {
this.wrapped = o;
}
public String getSize() {
return (String) o.get("sex");
}
public void setSize(String sex) {
o.put("sex", sex);
}
public String getIndicator() {
return (String) o.get("Indicator");
}
public void setIndicator(String Indicator) {
o.put("Indicator", Indicator);
}
public String getId() {
return (String) o.get("_id");
}
public void setId(String _id) {
o.put("_id", _id);
}
}
在您的main
方法中,替換PowerData data = (PowerData) testdata.findOne(query);
具有以下內容:
PowerData data = new PowerData(testdata.findOne(query));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.