W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
lambda表達(dá)式可以訪問(wèn)最終局部變量或局部非最終初始化只有一次的變量。
下面的代碼顯示我們可以訪問(wèn)和使用最終的局部變量。
import java.util.function.Function; public class Main { public static void main(String[] argv) { final String x = "Hello"; Function<String,String> func1 = y -> {return y + " "+ x ;}; System.out.println(func1.apply("w3cschool.cn")); } }
上面的代碼生成以下結(jié)果。
下面的代碼有一個(gè)變量x,它不是final,只能初始化一次。我們?nèi)匀豢梢栽趌ambda表達(dá)式中使用它。
import java.util.function.Function; public class Main { public static void main(String[] argv) { String x = "Hello"; Function<String,String> func1 = y -> {return y + " "+ x ;}; System.out.println(func1.apply("w3cschool.cn")); } }
上面的代碼生成以下結(jié)果。
下面的代碼顯示我們不能改變?cè)趌ambda表達(dá)式之外定義的值。
import java.util.function.Function; public class Main { public static void main(String[] argv) { String x = "Hello"; Function<String,String> func1 = y -> {/*x="a";*/ return y + " "+ x ;}; System.out.println(func1.apply("w3cschool.cn")); } }
上面的代碼生成以下結(jié)果。
我們可以更改lambda表達(dá)式中的非局部變量。
import java.util.function.Function; public class Main { static String x = "Hello"; public static void main(String[] argv) { Function<String,String> func1 = y -> {x="a"; return y + " "+ x ;}; System.out.println(func1.apply("w3cschool.cn")); } }
上面的代碼生成以下結(jié)果。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: