如果我有下面的類:使用吉斯在運行時的參數傳遞給構造器
public class ObjectDAOMongoDBImpl<T> extends GenericDAOMongoDBImpl<T, ObjectId> implements ObjectDAO<T> {
public ObjectDAOMongoDBImpl(Class<T> entityClass, Mongo mongo, Morphia morphia, String dbName) {
super(entityClass, mongo, morphia, dbName);
}
}
其中,entityClass
在運行時提供的 - 我該如何使用吉斯綁定的說鍵入一個接口?
public class RunnerModule extends AbstractModule {
@Override
protected void configure() {
bind(GenericDAO.class).to(ObjectDAOMongoDBImpl.class);
}
}
public class Runner<T, V> {
GenericDAO<T, V> dao;
@Inject
public Runner(GenericDAO<T, V> dao) {
this.dao = dao;
}
public static void main(String[] args) {
Injector injector = Guice.createInjector(new RunnerModule());
injector.getInstance(Runner.class);
}
}
它的優良定義mongo
,morphia
和dbName
作爲文字來RunnerModule
(有一個更清潔的方式?),但我不知道什麼是entityClass
直到運行的方式。
你能澄清「在運行時提供」的句子嗎?如何以及何時提供'entityClass'? – jfpoilpret
@jfpoilpret - 通過cli參數 – wulfgarpro