Добавление новой переменной-члена в существующий Java POJO - PullRequest
2 голосов
/ 08 июля 2019

Здравствуйте, хотите добавить новое поле boolean hasXYZ в существующий класс, который имеет две переменные-члены. Этот класс широко используется в коде, и я хочу добавить новое поле таким образом, чтобы не менять все new demoClass() вызывает включение нового поля hasXYZ. И я был hasXYZ больше как поле по требованию ... так эффективно, я думаю, два набора конструктора ... один, который работает, а другой, который принимает дополнительные логические и устанавливает hasXYZ. Мысли о том, как я могу это сделать?

@Value
@NonFinal
public class demoClass implements demoInterface {
    int integerMember;
    long longMember;
}

Ответы [ 2 ]

1 голос
/ 08 июля 2019

Перегрузка конструктора:

public class demoClass implements demoInterface {
    int integerMember;
    long longMember; // these should probably be private
    boolean hasXYZ;

    public demoClass( int integerMember, long longMember) {
        this.integerMember = integerMember;
        this.longMember = longMember;
    }


    public demoClass( int integerMember, long longMember, boolean hasXYZ) {
        this.integerMember = integerMember;
        this.longMember = longMember;
        this.hasXYZ = hasXYZ;
    }
}

Тогда вам не придется изменять способ создания объектов.

0 голосов
/ 08 июля 2019
@Value
@NonFinal

public class demoClass implements demoInterface {
    int integerMember;
    long longMember;
}

и другой конструктор

@Value
@NonFinal
public class demoClass implements demoInterface {
    int integerMember;
    long longMember;
    boolean hasXYZ;
}
...