Eclipse是否有工具将类型层次结构合并到单个类中?

时间:2011-07-18 08:21:35

标签: java eclipse

eclipse是否有可以从MergedA创建B的工具?

public class A {
    int a;

    public int getA(){
        return A;
    }
}

public class B extends A {
    int b;

    public int getB(){
        return b;
    }
}

public class Merged {
    int a;
    int b;

    public int getA(){
        return A;
    }
    public int getB(){
        return b;
    }
}

1 个答案:

答案 0 :(得分:6)

我不这么认为。这不是那么简单的任务。你的例子很简单,但请考虑一下:

class A {
    private int a;
    public void foo(){
        System.out.println(a);
    }
}

class AA extends A {
    private int a; //its not the same 'a'!!
    public void foo(){ //ok, we override, so we can 'overwrite', but...
        super.foo(); //... what with this?
        System.out.println(a);
    }
}

正如您所看到的,它难以实现自动化。如果这个层次结构中的某个类扩展了一些lib类,那么你没有源代码呢​​? 因此,合并很难,而且非常糟糕,这就是为什么我认为没有人写过这样的工具。