MongoDB Java驱动程序:无法扩展MongoDatabase

MongoDB Java驱动程序:无法扩展MongoDatabase,java,mongodb,mongodb-java,database,Java,Mongodb,Mongodb Java,Database,我正在编写MongoDB java应用程序 我想从mongoClient创建每个数据库的对象集合(类型MongoDatabase)。检查 下一步:我想扩展MongoDatabase类型,为自己编写一些函数。 出现触发错误:java.lang.ClassCastException:com.mongodb.MongoDatabaseImpl无法转换为model.ownMongoDatabase 我不知道为什么,但是旧的Java驱动程序有一个DB类。对Java驱动程序(版本3)进行了一些更改,DB类的

我正在编写MongoDB java应用程序

我想从mongoClient创建每个数据库的对象集合(类型MongoDatabase)。检查

下一步:我想扩展MongoDatabase类型,为自己编写一些函数。 出现触发错误:java.lang.ClassCastException:com.mongodb.MongoDatabaseImpl无法转换为model.ownMongoDatabase

我不知道为什么,但是旧的Java驱动程序有一个DB类。对Java驱动程序(版本3)进行了一些更改,DB类的函数现在标记为已弃用。现在,您显然必须使用MongoDatabase。但是MongoDatabase是一个接口,所以没有机会为我自己的类扩展它

代码段:

public class MongodbInstance extends com.mongodb.MongoClient {

 private ArrayList<ownMongoDatabase > _mongodbDatabases = new ArrayList<ownMongoDatabase >();

 private void buildMongodbDatabases(){
   MongoCursor<String> iterator = this.listDatabaseNames().iterator(); // iterate through Databases

   while(iterator.hasNext()){
     this._mongodbDatabases.add((ownMongoDatabase) this.getDatabase(iterator.next())); // add Database-Object to Array
     }
   }
}


class ownMongoDatabase implements MongoDatabase {

}
公共类MongodbInstance扩展com.mongodb.MongoClient{
private ArrayList_mongodbDatabases=new ArrayList();
私有void buildMongodbDatabases(){
MongoCursor iterator=this.listDatabaseNames().iterator();//遍历数据库
while(iterator.hasNext()){
this.\u mongodbDatabases.add((ownMongoDatabase)this.getDatabase(iterator.next());//将数据库对象添加到数组
}
}
}
类ownMongoDatabase实现MongoDatabase{
}
是否存在严重错误/编码故障? 谢谢你的帮助

this.\u mongodbDatabases.add((ownMongoDatabase)this.getDatabase(iterator.next())

在这一行中,您试图将MongoDatabaseImpl分配给您自己的MongoDatabase。这肯定会引发类强制转换异常

假设您有一个类A,它是父类, B类和C类从A类扩展而来。 您不能将B类分配给C类

试着建立一种关系而不是一种关系