我有Dao<T>
由BaseDao<T>
类实现的接口,BaseDao<T>
后来由许多子类(如UserDao
类)扩展。
interface Dao<T>{}
abstract class BaseDao<T> implements Dao<T>{}
class UserDao extends BaseDao<User>{}
以下是guice绑定
bind(new TypeLiteral<Dao<User>>() {
}).annotatedWith(Names.named("UserDao")).toProvider(UserDaoProvider.class);
提供者看起来像..
public class UserDaoProvider implements Provider<UserDao> {
@Override
public UserDao get() {
return new UserDao();
}
}
现在我正试图从 guice 注射器中得到它
injector.getInstance(Key.get(new TypeLiteral<Dao<User>>() {
}, Names.named("UserDao")));
但我得到null
请帮助解决问题。