Я создал запись Java и хотел бы иметь конструктор, который принимает меньшее количество аргументов по сравнению с конструктором по умолчанию, а также рассчитывает и инициализирует все члены на основе заданных аргументов.
Однако мне показалось, что это сложно сделать, поскольку первая строка пользовательского конструктора должна вызывать конструктор по умолчанию. Мой текущий подход заключается в вызове моих вычислительных функций по мере необходимости, но это приводит к ненужной обработке.
Конечно, должен быть лучший способ добиться этого?
public record MyRecord(double a, double b, double c) {
public MyRecord(double a) {
this(a, calculateB(a), calculateC(a, calculateB(a)));
}
private static double calculateB(double a) {
// Some calculations
return b;
}
private static double calculateC(double a, double b) {
// Some calculations
return c;
}
}
Подробнее здесь: https://stackoverflow.com/questions/712 ... in-records