دلیل final بودن متغیر هایی که در lambda expression استفاده می شوند در جاوا چیست؟

0 رأی
میانگین بازدید روزانه 0.19443 بازدید

با عرض سلام

چرا در java 8 در عبارت های لامبدا باید از متغیر های final استفاده کرد. در غیر این صورت به خطای compile time بر می خوریم.

مرسی

سوال 6 سال قبل در تالار برنامه نویسی توسط java_ (778 امتیاز)
ویرایش 6 سال قبل توسط Saeed Zarinfam

1 جواب

+2 رأی
 
بهترین جواب

همانطور که می دانید lambda expression معادل anonymous inner class در جاوا قبل ۸ هستند (با کمی تفاوت جزئی) و می توان این دو را بجای یکدیگر در کد های جاوا ۸ استفاده کرد.

دلیل این موضوع برای anonymous inner class در این سوال جواب داده شده است که برای lambda expression نیز صدق می کند.

جواب 6 سال قبل توسط Saeed Zarinfam (1,044 امتیاز)
انتخاب شده در 6 سال قبل توسط java_

سوال های مشابه

0 رأی
1 جواب میانگین بازدید روزانه 0.13323 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.331,067 بازدید
سوال 8 سال قبل در تالار برنامه نویسی توسط Saeed Zarinfam (1,044 امتیاز)
+2 رأی
2 جواب میانگین بازدید روزانه 0.582,058 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.15263 بازدید
+2 رأی
1 جواب میانگین بازدید روزانه 0.45589 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.1267 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.26746 بازدید
کانال تلگرام جواب یاب
...