Вы также можете попробовать:
listOfClassB.stream().map(ClassB::getAnotherObjList).flatMap(List::stream).count();
Это очень лаконично и элегантно. Если ClassB::getAnotherObjList
не возвращает слишком много элементов, производительность не будет проблемой.
Это берет Expression
возразите и переносит его с другим Expression
. Например, если у Вас будет выражение, которое является для лямбды, то использование его в дереве создаст лямбда-выражение, но использование его заключило в кавычки, приведет к выражению для лямбды в выводе.
method | resulting object | after compile
--------------------------------------------------------------------------------------------------
Expression.Lambda(... | Expression of lambda | Lambda
Expression.Quote(Expression.Lambda(... | Expression of expression of lambda | Expression of lambda