Как я могу уменьшить цикломатическую сложность следующего кодаСнижения цикломатической сложности
public class AnswerTypeEnumConverter implements CustomConverter {
public Object convert(Object destination, Object source, Class destinationClass, Class sourceClass)
...
метода convert()
от интерфейса CustomConverter
, который предопределенный интерфейс в моем проекте и предоставляются как банка, так что я не может изменить подпись convert()
метода, который
Object convert(Object existingDestinationFieldValue, Object sourceFieldValue, Class<?> destinationClass, Class<?> sourceClass);
Я использую SONAR 3.6 и он показывает ошибку, как:
The Cyclomatic Complexity of this method is 15 which is greater than 10 authorized.
Вот код для convert
метода
public Object convert(Object destination, Object source, Class<?> destinationClass, Class<?> sourceClass) {
Object destinationValue = destination;
if (source == null) {
LOGGER.info("APPLICATION OBJECT IS NULL CONVERSION STOPPED AND RETURNING NULL");
return null;
}
if (destinationValue == null) {
destinationValue = new KYExchangeTransfer();
}
destinationValue = setRequest(((Application) source), ((KYExchangeTransfer) destinationValue));
return destinationValue;
}
Как я могу уменьшить сложность?
Не видя код 'convert' метода, это трудно, чтобы помочь вам изменить его .... – assylias
цикломатической Сложность обусловлена большим количество, если -все заявления. Это, как правило, кодовый запах, который указывает на отсутствие абстракции. –
Я отредактировал вопрос, включив ваш исходный код. Пожалуйста, дайте мне знать, если я переписал его неправильно. –