我有一个父类,其构造函数为:
@Inject
public AbstractResource(@Named("authorization") Authorization auth,
@Named("helper") Helper helper) {
this.authorization = authorization;
this.helper = helper;
}
现在在子类中,我有类似的构造函数:
public class MyResource extends AbstractResource {
private Manager manager;
@Inject
public MyResource(@Named("authorization") Authorization auth,
@Named("helper") Helper helper) {
super(auth, helper);
this.manager = new Manager();
}
...
问题是我有大量从 AbstractResource 扩展的子类,我必须一遍又一遍地使用“Authorization”和“Helper”编写类似的构造函数。有什么办法可以避免重复编码吗?
抱歉,更新了我的代码,是的,我可以在每个子类中调用 super(..),但仍然在每个构造函数中我注入(inject)了所有这些参数、身份验证和帮助程序,只是想知道是否有一种方法可以简化那个
最佳答案
您可以创建一个对象来保存所有参数。
但除此之外,不完全是这样。这就是 Java 中的生产 DI 代码的实际样子。
关于java - 如何避免 child 重复构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35372707/