簡體   English   中英

Java / Eclipse:“Lambda表達式不能用於評估表達式”

[英]Java/Eclipse: “Lambda expressions cannot be used in an evaluation expression”

我寫了下面的lambda表達式

int size = ((List<?>) receipt.getPositions().stream().filter(item -> true).collect(Collectors.toList())).size()

可變size正確計算!

但是當我嘗試檢查它( Ctrl + Shift + I )或嘗試在Eclipse表達式視圖中查看表達式的結果時,我收到以下錯誤:

“Lambda表達式不能用於評估表達式”

在此輸入圖像描述

有沒有其他機會看到這樣的表達式的結果而不是將其存儲到變量?

PS:我使用的是Java 8和Eclipse neon.2

一個簡單的解決方案,可以在匿名類創建中轉換lambda。 創建所需接口的變量,您將獲得可調試的表達式。

    Predicate<Object> predicate = new Predicate<Object>() {
        @Override
        public boolean test(Object item) {
            return true;
        }
    };
    int size = ((List<?>) receipt.getPositions().stream().filter(predicate).collect(Collectors.toList())).size();

現在,如果您在調試時站在“int size = ...”行,您可以查看以下結果:

((List<?>) receipt.getPositions().stream().filter(predicate).collect(Collectors.toList())).size()

我希望它有幫助:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM