Android Studio: отключить предупреждение для строки if 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 . Можете ли вы сказать мне, что это была аннотация / комментарий?

Solutions Collecting From Web of "Android Studio: отключить предупреждение для строки if if"

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

 //noinspection SimplifiableIfStatement 

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

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

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

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

Это не ошибка 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 (удерживая область как можно меньше).

Конечно:

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

Пример:

 @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"})

Ура!