Использование jung2 в плагинах cytoscape

Я занимался Java уже около полутора недель, чтобы писать плагины Cytoscape и использовать jung2 для анализа и манипулирования объектами графа Cytoscape. Есть ли способ расширить объект графа cytoscape, называя его классом xyz, чтобы включить новое поле объекта типа графа jung2, поля и методы которого указывают на соответствующие в cytoscape, не создавая совершенно новый объект в памяти. Не уверен, что у меня есть смысл и смысл, но предположим, например, что у меня было два класса, представляющих один и тот же тип объекта

public class xyz {

    public double i;

    public xyz(double a) {
        i=a;
    }
}

public class pqr {

    public double j;

    public pqr(double b) {
        j=b;
    }
} 

тогда что-то вроде

public class trans extends xyz {

    public pqr toPqr;

    public trans(double a) {
        super(a);
        toPqr = new pqr(i);
    }
}

где сейчас, если

trans myTrans = new trans(5);

затем myTrans.toPqr.j указывает на myTrans.i

если я назначу новое значение либо тогда myTrans.i изменения

и если я изменюсь myTrans.i тогда это видно в myTrans.toPqr.j

1 ответ

Хорошо, что я ищу, есть ли способ определить класс Trans, который расширяет класс XYZ, так что если у меня есть, например,

public class xyz {

    public String r;
    public double i;

    public xyz(String a, double b) {
        r=a;
        i=b;
    }
}

а также

public class pqr {
    public String s;
    public double j;

    public pqr(String a, double b) {
        s=a;
        j=b;
    }
}

а также

public class trans extends xyz {

    public pqr toPqr; //adding a new field of type pqr

    trans(xyz myXyz) {
        super(myXyz.r, myXyz.i);
        //code
    }
}

тогда если

xyz xyzA = new xyz("a",8); // constructor for two fields string r and double s

и (переделать?)

xyzA = new trans(xyzA); // trans takes an xyz object as constructor arg

чтобы

((trans)xyzA).toPqr.s всегда равен xyzA.r, где при смене одного изменяется другой ((trans)xyzA).toPqr.j всегда равен xyzA.i, где при смене одного изменяется другой

В основном есть два различных объекта Java, представляющих математический объект одного типа, например, граф. Один пакет процедур имеет дело с первым представлением, а другой набор процедур имеет дело только со вторым представлением графа. Чтобы использовать второй набор подпрограмм в первом представлении, я должен был бы воссоздать граф в памяти из первого представления, которое я не хочу делать. Я хотел бы расширить первый объект новым полем того же типа, что и второе представление. Без слежки за графиком в памяти.

Я предполагаю, что самым простым и самым бессмысленным упражнением будет определение класса с двумя различными полями, которые всегда равны и изменяются друг с другом. Можно ли сделать это?

Другие вопросы по тегам