2017-03-22 139 views
0

我是Java 8 lambda的新學習者。 我發現了一個聲明書(的Java 8真的很急)說, 「這是不合法的lambda表達式的一些分支機構,但不是在別人返回值。例如,(INT X) - > {if(x> = 0)return 1;}無效Java 8 Lambda表達式

任何人都可以解釋這一點嗎?請提供一些例子。

在此先感謝。

+6

我不明白你的困惑。你已經有了一個解釋的例子。這是無效的,因爲只有兩個分支中的一個返回值。 –

+3

無論您是否編寫標準方法或類似上面的lambda表達式,代碼都需要定義一些結果。在你的例子中,對於負輸入('x')表達式不返回任何內容 - 這是不允許的。 –

+3

這本書應該改名爲真正耐心的Java 8。 Java 8已經出現3年了;-) –

回答

3

我不明白你不明白的地方。這是否會編譯?

static int test(int x) { 
    if(x >= 0) { 
     return 1; 
    } 
} 

這同樣適用於lambda表達式。