Лямбда 'специальное правило void-совместимости' - выражение оператора

Я читаю Java 8 в действии. В разделе 3.5.2 есть параграф о «правиле void-совместимости»:

Если лямбда-выражение имеет выражение оператора в качестве тела, оно совместимо с дескриптором функции, который возвращает void (при условии, что список параметров также совместим). Например, обе следующие строки являются допустимыми, даже если метод add объекта List возвращает логическое значение, а не void, как ожидалось в контексте Consumer (T -> void):

// Predicate has a boolean return 
Predicate<String> p = s -> list.add(s); 
// Consumer has a void return 
Consumer<String> b = s -> list.add(s);

Как бы вы описали «выражение выражения» в целом? Я думал, что это было или утверждение или выражение. Также это правило void-совместимости мне не совсем понятно, можете ли вы привести какие-либо другие примеры?

Ответы на вопрос(3)

Ваш ответ на вопрос