вернуть без значения в булеву функцию - PullRequest
0 голосов
/ 01 мая 2020

Как я могу просто использовать ключевое слово return без значения внутри функции, которая возвращает логическое значение, или есть другой способ?

listview.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if (Conditions...) {
            return;
        }
        //some code
        ...
        return false;
    }
});

Ответы [ 3 ]

1 голос
/ 01 мая 2020

Ваш метод onTouch возвращает логический примитив. вы должны вернуть либо true, либо false.

Любой метод, объявленный как void, не возвращает значение. Он не должен содержать оператор возврата, но он может это сделать. В таком случае оператор return может использоваться для отделения от блока потока управления и выхода из метода и используется просто так:

return;

Oracle Документация

0 голосов
/ 01 мая 2020

Если вы определяете метод с булевым типом возвращаемого значения, вы должны вернуть true или false. Если вы хотите вернуть другое значение, возможно, вы можете изменить тип возвращаемого значения на int. Затем вы можете вернуть значения 0 (true), 1 (false) или -1 (для чего-то еще). Тем не менее, в этом случае вы не можете сделать это, так как переопределяющий метод требует логического значения.

0 голосов
/ 01 мая 2020

Вы не можете. Вы переопределяете метод, определенный в интерфейсе, поэтому вы должны придерживаться контракта, который определяет интерфейс. Вызывающая сторона метода ожидает получить логическое значение, поэтому вы должны вернуть его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...