Eclipse跳转到实际实现

3
我有以下类结构。我想知道如何在Eclipse中跳转到printVar()方法的实际实现。
如果我将鼠标悬停在main方法中的两个方法调用上并单击打开实现,我会看到两个类。是否有一种方法可以直接跳转到B类中此方法调用w.getWrapperVar().printVar()的实现?
public class A {

    private String var;

    public A(String a){
        this.var=a;
    }

    public void printVar(){
        System.out.println("class A print: " + this.var);
    }

}

public class B extends A{

    private String var;

    public B(String a){
        super(a);
        this.var=a;
    }

    @Override
    public void printVar(){
        System.out.println("class B print: " + this.var);
    }

}

public class Wrapper {

    private B wrapperVar;
    private A wrapperVar2;

    public Wrapper(String var){
        this.wrapperVar = new B(var);
        this.wrapperVar2 = new A(var);
    }

    // explicit Return Class A
    public A getWrapperVar(){
        return this.wrapperVar;
    }


    public A getWrapperVar2(){
        return this.wrapperVar2;
    }

}

public class main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        Wrapper w = new Wrapper("value");

        w.getWrapperVar().printVar();

        w.getWrapperVar2().printVar();

    }

}

getWrapperVar 返回一个 A,因此 Eclipse 没有理由相信 A 的实现或其任何子类的实现是你要寻找的。 - njzk2
2个回答

2

Eclipse不知道实现类是B,所以它无法直接跳转到B。

但是,您可以单击printVar并按Ctrl-G搜索所有可能是实际实现的方法。


1
在选择一个方法调用后,您可以按F3功能键。此操作将带您进入该方法的定义。该定义可能在一个接口中。 当您在该文件中时,您可能想按Ctrl+T。这将显示实现您正在查找的方法的类的类型层次结构。 希望这有所帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接