我有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获取它
injector.getInstance(Key.get(new TypeLiteral<Dao<User>>() {
}, Names.named("UserDao")));但我得到了null
请帮助解决此问题。
发布于 2020-10-28 16:30:01
我们可以按如下方式获取UserDao的实例
injector.getInstance(UserDao.class);https://stackoverflow.com/questions/64567482
复制相似问题