java lambda 局部变量_java Lambda表达式访问局部变量详细介绍
此前給大家?guī)?lái)了java
Lambda表達(dá)式訪問(wèn)成員變量詳細(xì)介紹,下面就要繼續(xù)給大家介紹java
Lambda表達(dá)式訪問(wèn)局部變量的內(nèi)容,一起通過(guò)簡(jiǎn)單的文章來(lái)進(jìn)行了解吧。
對(duì)于成員變量的訪問(wèn)Lambda表達(dá)式和普通方法沒(méi)有什么區(qū)別,但是,訪問(wèn)局部變量的時(shí)候,變量必須是final類型的(不可改變)。
示例:public?class?LambdaDemo
{
//?實(shí)例成員變量
private?int?value?=?10;
//?靜態(tài)成員變量
private?static?int?staticValue?=?5;
//?靜態(tài)方法,進(jìn)行加法運(yùn)算
public?static?Calculable?add()
{
//?局部變量
int?localValue?=?20;
Calculable?result?=?(int?a,?int?b)?-?>
{
//?localValue++;
//?編譯錯(cuò)誤
int?c?=?a?+?b?+?localValue;
return?c;
};
return?result;
}
//?實(shí)例方法,進(jìn)行減法運(yùn)算
public?Calculable?sub()
{
//?final局部變量
final?int?localValue?=?20;
Calculable?result?=?(int?a,?int?b)?-?>
{
int?c?=?a?-?b?-?staticValue?-?this.value;
//?localValue?=?c;
//?編譯錯(cuò)誤
return?c;
};
return?result;
}
}
在上面的代碼當(dāng)中,第10行和第23行都聲明一個(gè)局部變量localValue,Lambda表達(dá)式中訪問(wèn)這個(gè)變量,如代碼第14行和第25行。
不論這個(gè)變量是否顯示顯式地使用final修飾,它都不能在Lambda表達(dá)式當(dāng)中修改變量,所以代碼第12行和第26行,假如,去掉注釋會(huì)發(fā)生編譯錯(cuò)誤。
注意,Lambda表達(dá)式只能訪問(wèn)局部變量而不能修改,否則會(huì)發(fā)生編譯錯(cuò)誤,但對(duì)靜態(tài)變量和成員變量可讀可寫(xiě)。
以上的知識(shí)你都了解了嗎?請(qǐng)多多的關(guān)注奇Q工具網(wǎng)吧,更多的java入門(mén)知識(shí),可以繼續(xù)為你分享和解答哦。
推薦閱讀:
總結(jié)
以上是生活随笔為你收集整理的java lambda 局部变量_java Lambda表达式访问局部变量详细介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: c sqlserver建表csdn_Or
- 下一篇: java是很厉害的么_java总是很强大