是否可以将父实例类型获取为其成员变量的类?

时间:2015-08-27 17:24:22

标签: java dependency-injection

我有一个类说Parent,它有一个Selector类作为成员变量。我希望Selector类根据其父实例选择多个子类中的一个。因此,如果Parent是A类型,那么Selector将选择类a,如果Parent是B类,Selector将选择类b等。我也不想将其他信息传递给Selector类&#39 ; s选择函数作为参数。有没有办法在Java中实现它?

@Inject
public class Parent {
    private Selector mSelector;
    ...
}

@Inject
public class Selector {
    ...
    public Child chooseChild() {
        // Choose child class based on Parent instance
        ...
    }
}

1 个答案:

答案 0 :(得分:0)

没有。因为如果

你期望发生什么
@Inject
public class Parent1 {
    private Selector mSelector;
}
@Inject
public class Parent2 {
    private Selector mSelector;
}

mSelector一样吗?

您实际上可以在上下文中扫描所有bean,检查它们是否包含类型为Selector的字段,并获取符合您标准的所有 bean列表。

如何操作取决于您使用的IOC框架。