java - Dagger2:如何在多态期间注入成员变量?
问题描述
public class A {
protected B mB;
public A() {
createB();
}
public void createB() {
mB = new B();
}
}
public class ChildA extends A {
public ChildA() {
super();
}
public void createB() {
mB = new ChildB();
}
}
public class B {
public B() {
}
}
public class ChildB extends B {
public ChildB() {
}
}
public class DemoApp {
public static void main(String[] args) {
A a = new ChildA();
}
}
根据上面的代码,我们可以看到:
当一个 A 被更新时,一个 B 被创建
当一个 ChildA 被新建时,一个 ChildB 被创建。
我的问题是如何在这种多态性情况下注入 mB?如果设计模式不合适,我该如何重构代码?
解决方案
推荐阅读
- json - React Native - NSNumber 类型的 JSON 值“1311”无法转换为 NSDictionary
- google-apps-script - 我无法在具有编辑权限的 Google 表格上创建脚本
- python - TensorFlow:没有名为 Pandas 的模块(我已经有了 Pandas)
- azure - Azure Cosmos DB SQL API
- c# - RSA-SHA256 签名不匹配
- flutter - Flutter 和 GetX - 当我更新我的 RxObject 时,小部件不会重绘
- javascript - antd 图片上传需要将基于类的组件转换成react -hooks,无法增加图片的宽高
- clang - 如何构建clang-tools?“make clang-tools”什么都不做
- c# - 在 C# 中的 sql 查询中对数字字符串进行排序
- python - 为什么这个循环不起作用,我如何让代码记住之前猜到的字母?