我正在尝试将一个对象注入到基于注入类上的保留注释创建的类的构造函数中。我可以使用Provider
简单地创建对象本身,但我需要获取当前正在注入的类。
摘要MyClass
和基本MyClassImpl
实施:
public abstract class MyClass {} //ignoring constructor
@Annotation("value")
public class MyClassImpl extends MyClass {
@Inject
private MyClass(MyService service, MyObject object) {
super(service, object);
}
}
服务提供实例并包含Injector
:
public class MyService {
private final Injector injector;
public <T extends MyClass> T getInstance(Class<T> clazz) {
return injector.getInstance(clazz);
}
}
我的目标是设置模块,以便我可以注入使用注释中的信息创建的MyObject
实例,例如在上面的示例中id为value
。 / p>
粗略的解决方案是将当前正在注入的类保存为MyService
中的变量。模块是在构造函数中创建的,所以我可以从中获取它,这应该足以满足我的需求。但是,我认为有一些方法可以让课程正在注入。
谢谢!