عرض سلام
در جاوا تازه کار هستم و پیشاپیش پوزش میخوام اگر سوال مبتدیانست
در برنامه اندروید استودیو در قسمتی از کلاس Adapter اینترفیسی به شکل زیر تعریف شده و با متد stItemClickListener مقدار دهی میشه :
public class Adapter extends RecyclerView.Adapter<Adapter.MyViewHolder> {
........
private iClickListener mListener;
public interface iClickListener {
void inItemClick(int position);
}
public void stItemClickListener(iClickListener listener) {
mListener = listener;
}
.......
}
و در متدی در کلاس MainActivity اینترفیس به شکل زیر فراخوانی شده :
Adapter.iClickListener iClickLsnr = new Adapter.iClickListener() {
@Override
public void inItemClick(int position) {
///بازنویسی بدنه متد
}
};
adapter.stItemClickListener(iClickLsnr);
ابهامی که برای بنده ایجاد شده این هست که اینترفیس ها دارای متد سازنده و قابل نمونه نیستند
که در خط زیر در MainActivity ظاهرا New شده و متد سازنده فراخوانی میشه:
new Adapter.iClickListener()
اینترفیس ها در واقع کلاس نیستند. بنابراین در بدنه خودشون دارای سازنده یا Constructor نیستند. اما برای استفاده از اونها باید در بدنه کلاس initial بشن. برای initial کردن یا ساختن یک نمونه از اینترفیس ها به دو صورت میشه این کار رو انجام داد.
روش اول تزریق وابستگی یا Dependency Injection هستند که میشه گفت در قطعه کد اولی که فرستادید این کار انجام شده.
روش دوم هم ساختن یک نمونه از اینترفیس هست که در قطعه کد دوم استفاده شده.
معمولا توی برنامه نویسی به روش اول بیشتر کار میشه. ولی ممکنه اینترفیسی باشه که فقط در یک بخش کوچک از کد شما نیاز به استفاده داشته باشه. بنابراین نیاز نیست به روش اول در سازنده اون کلاس initial بشه و میشه در همون بخش از کد یک نمونه ازش new کرد و استفاده کرد تا با این روش منابع کمتری استفاده بشه.
تاریخ :
1399/06/04
- ساعت :
02:25:00 PM
- بازدید :
4419
- پاسخ :
2
|
تاریخ :
1398/08/15
- ساعت :
01:40:00 PM
- بازدید :
3899
- پاسخ :
1
|
تاریخ :
1403/10/21
- ساعت :
02:16:00 PM
- بازدید :
231
- پاسخ :
1
|
تاریخ :
1399/08/21
- ساعت :
09:16:00 PM
- بازدید :
3596
- پاسخ :
2
|
تاریخ :
1399/08/22
- ساعت :
07:24:00 PM
- بازدید :
3816
- پاسخ :
2
|
تاریخ :
1398/08/20
- ساعت :
02:43:00 AM
- بازدید :
6381
- پاسخ :
5
|
تاریخ :
1398/08/14
- ساعت :
12:03:00 AM
- بازدید :
3191
- پاسخ :
1
|
تاریخ :
1398/08/14
- ساعت :
12:10:00 AM
- بازدید :
4456
- پاسخ :
1
|
تاریخ :
1399/07/10
- ساعت :
01:11:00 AM
- بازدید :
2999
- پاسخ :
4
|
تاریخ :
1399/12/24
- ساعت :
09:34:00 PM
- بازدید :
2797
- پاسخ :
1
|
تاریخ :
1404/01/07
- ساعت :
05:02:00 AM
- بازدید :
89
- پاسخ :
1
|
تاریخ :
1402/04/28
- ساعت :
09:04:00 PM
- بازدید :
1314
- پاسخ :
0
|
تاریخ :
1403/12/30
- ساعت :
06:43:00 PM
- بازدید :
66
- پاسخ :
1
|
تاریخ :
1398/08/23
- ساعت :
09:16:00 PM
- بازدید :
9852
- پاسخ :
1
|
تاریخ :
1404/01/03
- ساعت :
12:18:00 PM
- بازدید :
38
- پاسخ :
1
|
تاریخ :
1404/01/03
- ساعت :
10:39:00 AM
- بازدید :
45
- پاسخ :
1
|
تاریخ :
1404/01/02
- ساعت :
05:05:00 PM
- بازدید :
60
- پاسخ :
1
|
تاریخ :
1403/12/30
- ساعت :
06:52:00 PM
- بازدید :
48
- پاسخ :
1
|
تاریخ :
1399/06/04
- ساعت :
02:25:00 PM
- بازدید :
4419
- پاسخ :
2
|
تاریخ :
1403/11/30
- ساعت :
10:36:00 AM
- بازدید :
202
- پاسخ :
2
|