آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

چرا باید اشاره گرهای محلی ( Local ) رو بعضی وقتها final کنیم؟

uncocoder  11 سال پیش  10 سال پیش
+11 0

 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
uncocoder  11 سال پیش
+20 0

وقتی چیزی را فاینال می کنید، معرفی می کنید که غیر قابل تغییر هست. اگر آنرا به عنوان یک Local Variable تعریف کرده باشید، در بلاک یک متد مورد استفاده قرار میگیره و بعد اون اشاره گر ( نه محتوای اشاره گر ) پاک میشه.

پس برای اینکه در نمونه ای از یک کلاس Anonymous که ساخته میشه ( مثل new OnClickListener ) قرار باشه ازش استفاده بشه، باید تضمین شده باشه که مقدار داخل اون عوض نخواهد شد و همیشه این اشاره گر به یک نقطه ثابت اشاره می کنه. به همین علت استفاده یک اشاره گر ( یا متغیر ) Local در یک Object از جنس یک Anonymous Class نیاز به Final شدن داره.

+1 0
آیا final کردنش این تضمین رو میده که تا آخر برنامه هم وجود داشته باشه یا فقط تا زمان آخرین دسترسی به اون متغییر وجود داشته باشه ؟ ، پس چرا برای final بودن اینظور تعریف نشده که وقتی به این نقطه رسید ، مقدارش غیر قابل تغییر باشه تا اینکه از لحظه تعریف به بعد !، این یکم دست ما رو میبنده که البته قابل حله :) (10 سال پیش)
+2 0
شما با فاینال کردن ادعا می کنید که غیرقابل تغییر هست و طبق این ادعا Eclipse عمل می کنه. اما لزومی به قطعی بودن این ادعا نیست که البته Eclipse به شما اجازه تغییر نمیده. نمی دونم این کمکی کرد یا نه؟ (10 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .