gpt4 book ai didi

reflection - Guice 对象上的类层次结构问题

转载 作者:行者123 更新时间:2023-12-04 01:21:21 25 4
gpt4 key购买 nike

我正在尝试使用 Guice 实例化我的 Objectify DAO。我的层次结构如下:

public class EmpresaDao extends ObjectifyDao<Empresa> { ... }

public class ObjectifyDao<T> extends DAOBase { ... }

当我使用“new EmpresaDao()”时,getClass().getGenericSuperclass() 给我:

[INFO] superclass -> br.com.xxxxx.server.service.ObjectifyDao<br.com.xxxxx.domain.Empresa>

当我使用“injector.getInstance(EmpresaDao.class)”时,getClass().getGenericSuperclass() 给我:

[INFO] superclass -> class br.com.xxxx.server.service.EmpresaDao

显然,我想让 Guice 使用 DI 实例化我的对象。

有人可以解释为什么会这样吗?

有没有办法(用 Guice 实例化)获得与“new ()”相同的父类(super class)?

谢谢。

最佳答案

感谢帮助我的 Stuart McCulloch here

可以禁用 AOP(使用 Guice whitout AOP)这给了我想要的东西(br.com.xxxxx.server.service.ObjectifyDao)(未测试)

但是我想在我的工具包中使用 AOP,所以我通过从 Guice 生成的代理类中获取 TypeArguments 来解决:

        clazz = (Class<T>) ((ParameterizedType) TypeLiteral.get(getClass()).getSupertype(ObjectifyDao.class).getType()).getActualTypeArguments()[0];

关于reflection - Guice 对象上的类层次结构问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11207729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com