Android Studio: отключить предупреждение для строки if

У меня есть этот код где-то в моем проекте Android:

public boolean isLoadInProgress(boolean privateLoad, boolean publicLoad) {
    if (privateLoad && privateLoadInProgress) {
        return true;
    }
    if (publicLoad && publicLoadInProgress) {
        return true;
    }
    return false;
}

Я получаю предупреждение во второй инструкции if: выражение "if" может быть упрощено. Это очевидно, потому что я мог написать также:

return publicLoad && publicLoadInProgress;

Однако я хотел бы сохранить его таким образом для удобства чтения. Я знаю, что есть некоторая встроенная аннотация комментария для отключения предупреждения о помехах в этом месте, но я не могу найти ее в документации Android Lint. Не могли бы вы рассказать мне, что это за комментарий/комментарий?

Ответ 1

Простой комментарий кода для отключения предупреждения:

//noinspection SimplifiableIfStatement

В верхней части инструкции if следует отключить предупреждение только в этом месте.

В этом примере это будет:

public boolean isLoadInProgress(boolean privateLoad, boolean publicLoad) {
    if (privateLoad && privateLoadInProgress) {
        return true;
    }

    //noinspection SimplifiableIfStatement
    if (publicLoad && publicLoadInProgress) {
        return true;
    }
    return false;
}

Ответ 2

Вы можете добавить @SuppressWarnings("SimplifiableIfStatement") над вашим методом.

Ответ 3

Это не ошибка Android Lint. Вы можете использовать:

@SuppressWarnings("RedundantIfStatement")
public static boolean isLoadInProgress(boolean privateLoad, boolean publicLoad) {
    if (privateLoad && privateLoadInProgress) {
        return true;
    }
    if (publicLoad && publicLoadInProgress) {
        return true;
    }
    return false;
}

В выделенном if вы можете использовать ярлык alt-enter, чтобы открыть контекстное меню и выбрать Simplify > Suppress for method (сохраняя область как можно меньше).

Ответ 4

Конечно:

В .java файлах вы можете устранить проблемы с помощью @SuppressLint аннотаций. В качестве аргумента для аннотации.

Пример:

@SuppressLint("AndroidWarningId")
public boolean isLoadInProgress(boolean privateLoad, boolean publicLoad) {
    if (privateLoad && privateLoadInProgress) {
        return true;
    }
    if (publicLoad && publicLoadInProgress) {
        return true;
    }
    return false;
}


Просто замените AndroidWarningId соответствующим предупреждением, вы можете найти в здесь

Хотя я бы предложил упростить его следующим образом:

public boolean isLoadInProgress(boolean privateLoad, boolean publicLoad) {
    if (privateLoad && privateLoadInProgress
     || publicLoad && publicLoadInProgress) {
        return true;
    }

    return false;
}

Его все еще читаемо и использует меньше места (вроде уродливого, но лучше, чем supresslint).

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

@SuppressLint ({ "NewApi", "StringFormatInvalid" })

Ура!