Есть ли в Eclipse инструмент для объединения иерархии типов в один класс? - PullRequest
5 голосов
/ 18 июля 2011

Есть ли в Eclipse инструмент, который может создавать Merged из A и 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 Ответ

6 голосов
/ 18 июля 2011

Я так не думаю.Это не так просто.Ваш пример прост, но учтите следующее:

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, для которого у вас нет источников?Таким образом, объединение сложно, и очень очень плохо, поэтому я не думаю, что кто-то написал такой инструмент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...