Как отладить поток (). Map (…) с лямбда-выражениями?

В нашем проекте мы переходим на Java 8 и тестируем его новые возможности.

В моем проекте я использую предикаты и функции Guava для фильтрации и преобразования некоторых коллекций, используяCollections2.transform а такжеCollections2.filter.

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

List<Integer> naturals = Lists.newArrayList(1,2,3,4,5,6,7,8,9,10,11,12,13);

Function <Integer, Integer> duplicate = new Function<Integer, Integer>(){
    @Override
    public Integer apply(Integer n)
    {
        return n * 2;
    }
};

Collection result = Collections2.transform(naturals, duplicate);

Для того, чтобы ...

List<Integer> result2 = naturals.stream()
    .map(n -> n * 2)
    .collect(Collectors.toList());

Используя guava, мне было очень удобно отлаживать код, так как я мог отлаживать каждый процесс преобразования, но меня беспокоит, например, как отлаживать.map(n -> n*2).

Используя отладчик, я вижу такой код:

@Hidden
@DontInline
/** Interpretively invoke this form on the given arguments. */
Object interpretWithArguments(Object... argumentValues) throws Throwable {
    if (TRACE_INTERPRETER)
        return interpretWithArgumentsTracing(argumentValues);
    checkInvocationCounter();
    assert(arityCheck(argumentValues));
    Object[] values = Arrays.copyOf(argumentValues, names.length);
    for (int i = argumentValues.length; i < values.length; i++) {
        values[i] = interpretName(names[i], values);
    }
    return (result < 0) ? null : values[result];
}

Но это не так просто, как Guava для отладки кода, на самом деле я не мог найтиn * 2 преобразование.

Есть ли способ увидеть это преобразование или способ легко отладить этот код?

РЕДАКТИРОВАТЬ: я добавил ответ из разных комментариев и опубликовал ответы

БлагодаряHolger комментарий, который ответил на мой вопрос, подход с использованием лямбда-блока позволил мне увидеть процесс преобразования и отладить то, что произошло внутри лямбда-тела:

.map(
    n -> {
        Integer nr = n * 2;
        return nr;
    }
)

БлагодаряStuart Marks подход с использованием ссылок на методы также позволил мне отладить процесс преобразования:

static int timesTwo(int n) {
    Integer result = n * 2;
    return result;
}
...
List<Integer> result2 = naturals.stream()
    .map(Java8Test::timesTwo)
    .collect(Collectors.toList());
...

БлагодаряMarlon Bernardes Ответ Я заметил, что мой Eclipse не показывает, что он должен, и использование peek () помогло отобразить результаты.

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

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