public class DbManager<T extends Dao> {
public DbManager(Context c) {
setCreateDatabaseScript(T);
}
public void setCreateDatabaseScript(T dao) {
this.createDatabaseScript = ((Dao)dao).createTable();
}
//..
}
我如何在构造函数内部调用setCreateDatabaseScript。我在示例中尝试但不工作。什么是正确的语法?
答案 0 :(得分:1)
setCreateDatabaseScript(T dao)
需要T
的实例,所以你可能应该在构造函数
public DbManager(Context c, T dao) {
setCreateDatabaseScript(dao);
}
此外,由于T extends Dao
您不需要将其投放到Dao,只需使用dao.createTable();
答案 1 :(得分:0)
public DbManager(Context c) {
setCreateDatabaseScript(T);
}
您必须使用类型为T的对象作为参数调用setCreateDatabaseScript,而不仅仅是使用T.
答案 2 :(得分:0)
在构造函数中使用对象T时,它从未被声明或实例化。