Есть ли способ уменьшить «цикломатическую сложность» следующего Java-кода? - PullRequest
0 голосов
/ 16 мая 2019

Я хочу знать, что следующие два кода могут быть дополнительно уменьшены. Им дают проблемы сложности в моем сервере сонара. Нужно, чтобы некоторые специалисты помогли решить эту проблему без ущерба для существующей логики. Я использую Java 8, это также хорошо, их любой простой способ в Java 8 тоже.

Код 1:

private DateTime GDT(final P1 prescriptionStartTimeHelper, P2doseDetailModel, P3 prescriptionModelSpi,
    final P4 prescriptionFacade) {
    final DepositModelSpi depositModel = //
    final DateTime userSetDateValue = //
        DateTime depositTime = //

    if ((userSetDateValue != null) && (DepositType.DATE == depositModel.getDepositTypeConstraint().getValue())) {
        final DosageMixedType doseType = //
        final LocalTime userSetLocalTime = //

        switch (doseType) {
            case A:

                // find the unit time list
                final List<LocalTime> unitTimeList = //

                if (!unitTimeList.contains(userSetLocalTime)) {
                    final LocalTime firstOccasionTime = unitTimeList.get(0);
                    depositTime =//

                } else {
                    depositTime = //
                }

                break;
            case B:

                final LocalTime doseTime = //;
                    depositTime = //

                break;
            case C:
            case D:
            case E:
            case F:
            case G:
                depositTime = //;
                break;
            default:
                depositTime = //

        }
    }

    return depositTime;
}
...