1

我需要分析 Java Spring Boot 应用程序中方法的调用层次结构。

当我有以下情况时,IntelliJ IDEA 会感到困惑:

  • 一个接口I声明I.foo()
  • A具有实现的抽象类I.foo()
  • 几个具体的类BC扩展AB覆盖A.foo()

我想获得呼叫层次结构,B.foo()但是我也获得所有呼叫者C.foo()

如果这很重要,这些类会自动装配,类似于以下内容:

@Component
public class Caller1 {
   @Autowired B b;

   public void bar(){ b.foo()} 
}

@Component
public class Caller2 {
   @Autowired C c;

   public void bar(){ c.foo()} 
}

public interface I {
   void foo();
}

public abstract class A implements I {
   void foo(){..}
}

@Component
public B extends A {
   @Override
   void foo() {..}
}

@Component
public C extends A {
   ..
}

在 IntelliJ IDEA 中,调用层次结构B.foo()包括Caller1.bar()Caller2.bar()。但我只想要B.foo()这样的来电者Caller1.bar()

4

0 回答 0