java-callgraph2 icon indicating copy to clipboard operation
java-callgraph2 copied to clipboard

接口Interface1,及其抽象实现类Abstract1,及其子类ChildImpl1,某个类中引入了接口Interface1并调用其方法的情况,调用关系缺失

Open abcolorful opened this issue 2 years ago • 0 comments

@Service public class StateManager { @Resource(name = "stateProcessor") private StateProcessor processor; public <E> void setState(StateContext<E> context, OrderStateEnum targetState) { switch (targetState) { case UNPAID: processor.onUnpaid(context); } } }

public class StateProcessorProxy implements StateProcessor { @Override public void onUnpaid(StateContext context) throws BizException { StateProcessor processor = findProcessor(order); processor.onUnpaid(context); }

private StateProcessor findProcessor(GrabOrderVO order) {
       return processorTable.get(ProcessorEnum.GRAB_PROC.name());

} }

<bean id="stateProcessor" class="com.xxx.StateProcessorProxy">
    <property name="processorTable">
        <map>
            <entry key="GRAB_PROC" value-ref="grabStateProcessor"/>
        </map>
    </property>
</bean>

public class GrabProcessor extends AbstractStateProcessor { @Override public void onUnpaid(StateContext context) { } }

public abstract class AbstractStateProcessor implements StateProcessor { } GrabProcessor 继承 AbstractStateProcessor 实现 StateProcessor StateProcessorProxy 实现 StateProcessor 入口:StateManager,setState方法,case UNPAID:分支 预期调用链路: 1、StateManager-----setState方法--onUnpaid分支 2、StateProcessorProxy----onUnpaid方法 3、GrabProcessor----onUnpaid方法 实际调用链路: 1、StateManager-----setState方法--onUnpaid分支 2、StateProcessor----onUnpaid方法 3、StateProcessorProxy----onUnpaid方法 4、StateProcessor----onUnpaid方法

abcolorful avatar Mar 03 '23 10:03 abcolorful