PDA

View Full Version : توضیح در مورد این گرامر: "; protected ArrayAdapter <CharSequence> mAdapter"



اندرویدی
یک شنبه 13 اردیبهشت 1394, 18:59 عصر
سلام. من زبان جاوا رو بلد هستم و با ارث بری و کپسوله سازی و ...... اشنا هستم. حالا اومدم یکی از sample های اندروید استودیو رو دارم موشکافی می کنم که ببینم اوضاع از چه قراره اما در میانه های کد به این خط رسیدم که با گرامرش اشنا نیستم. لطفا در مورد این گرامر من رو راهنمایی کنید و اگر مقدور است یک لینک انگلیسی زبان که این موضوع رو توضیح داده برای من بدید تا برم دنبالش. چون اصلا نمیدونم نام این گرامر چی هست و تا حالا چشمم نخورده به این گرامر در طول یادگیری زبان جاوا.

protected ArrayAdapter<CharSequence> mAdapter;

اون <> برای چیه؟

ممنون.

Nevercom
یک شنبه 13 اردیبهشت 1394, 19:32 عصر
این نمونه کد مربوط به مبحث Generics در جاوا هست.
درواقع اینجا شما دارید اشاره می کنید که متغیر از جنس ArrayAdapter هست که قراره در اون ArrayAdapter مقادیری از جنس CharSequence قرار بدید.

فرض کنید می خوایم کلاسی بنویسیم که مقادیری رو ذخیره کنه و عملیاتی روی اونها انجام بده (مثلاً Sort...)
ما احتمالاً دوست داریم داده های با نوع متفاوتی رو در همین کلاس مدیریت کنیم، بدون اینکه نیاز باشه برای هر نوع داده کلاس متفاوتی بنویسیم.
Generics بهمون اجازه میده که هنگام Instantiate کردن کلاس، نوع داده ای که قراره باهاش کار کنیم رو هم مشخص کنیم. این امکان بهمون اجازه میده کدهای منعطف تری بنویسیم، از دوباره نویسی پرهیز کنیم و چون نوع داده رو مشخص کردیم، اگر داده ای از جنس متفاوت ارسال شد، کامپایلر بهتر بتونه خطای احتمالی رو تشخیص بده و از باگ جلوگیری کنه.

برای اطلاعات بیشتر اینها رو بخونید:
https://docs.oracle.com/javase/tutorial/java/generics/
http://www.angelikalanger.com/GenericsFAQ/FAQSections/Fundamentals.html
http://en.wikipedia.org/wiki/Generics_in_Java