Почему в конструкторе Java сначала должно происходить делегирование другому конструктору?

Я считаю это довольно уродливым, но openjdk помогает я избегаю дублирования jre кода. В вот что я хотел syntax бы сделать, но это незаконно java в Java ...

Вы также можете openjdk обойти это ограничение, используя openjdk статический фабричный метод, который core-java возвращает новый объект:

public static BigFraction valueOf(BigDecimal d)
{
    // computate numerator and denominator from d

    return new BigFraction(numerator, denominator);
}

В javax качестве альтернативы вы j2se можете обмануть, вызвав частный openjdk статический метод для выполнения openjdk вычислений для вашего конструктора:

public BigFraction(BigDecimal d)
{
    this(computeNumerator(d), computeDenominator(d));
}

private static BigInteger computeNumerator(BigDecimal d) { ... }
private static BigInteger computeDenominator(BigDecimal d) { ... }        

java

syntax

2022-11-16T19:22:36+00:00
Вопросы с похожей тематикой, как у вопроса:

Почему в конструкторе Java сначала должно происходить делегирование другому конструктору?