簡短的回答是,你不會做到這一點,你只需直接撥打電話Long.parseLong()
在這種情況下。
較長的答案一點是你,你有你上面的i
確實很少明確聲明的類型ToLongFunction
明確的變量,但是寫一個lambda時,而間接使用功能接口作爲目標的該採取的許多功能之一他們。
要從新Stream
接口用一個例子,你可能要採取有數值像String
的List<String> input
對象:["123", "456", ...]
,並將它們全部解析成的long
列表。
你可以做到這一點的東西,如:
long[] result = input.stream().mapToLong(x -> Long.parseLong(x)).toArray();
在這裏,你從來沒有直接寫ToLongFunction
,而是通過提供一個lambda方法mapToLong(ToLongFunction f)
,它調用你Long.parseLong(x)
方法間接使用它。所以功能界面是幫助完成這項工作的神奇力量。
所以,你會讓間接使用這個接口的所有時間Stream
和Java中8其他拉姆達相關的功能,但你可能不經常使用它明確(除非你正在寫這要班接受這樣一個函數)。
它用來表示一個匿名函數。如果你有一個高階函數,它接受一個函數在轉換它的參數後必須返回一個很長的函數,你可以將傳遞函數的類型設置爲'ToLongFunction'。 – Carcigenicate