ကွန်ပျူတာများ, ပရိုဂရမ်းမင်း
ဂျာဗား General: ဖော်ပြချက်များနှင့်နည်းလမ်းများ
က Java language ၏အသွင်အပြင်နှင့်အတူစတင်ခြင်းခြောင်း၏လုပ်ဆောင်နိုင်စွမ်းအတွက်အပြုသဘောအချိန်လေးဆောင်ခဲ့သောအပြောင်းအလဲအများကြီးခံခဲ့သည်။ ဤအသိသာထင်ရှားသောအပြောင်းအလဲများကိုတစ်ခုမှာဂျာဗား Generic သို့မဟုတ်စစ်ဗိုလ်ချုပ်များ၏နိဒါန်းဖြစ်ပါတယ်။ ဤလုပ်ဆောင်ချက်သည်သာဒေတာအမျိုးအစားများကိုဆောင်ခဲ့၏စည်းကမ်းချက်များ၌ဘာသာစကားကိုပိုပြီးပြောင်းလွယ်ပြင်လွယ်ခြင်းနှင့်စွယ်စုံ, ဒါပေမယ့်လည်းအများကြီးပိုလုံခြုံပါစေ။
အမှန်မှာဂျာဗားယေဘုယျကုဒ်အတွက် General ၏နိဒါန်းမှကြိုတင်မသာ type ကိုရည်ညွှန်းအရာဝတ္ထု၏စည်းကမ်းချက်များ၌, နေသူများကဖန်တီးနိုင်သောကြောင့်ဖြစ်သည်။ ထိုသို့သောလင့်များဆိုအရာဝတ္ထုတာဝန်ပေးနိုင်ပါတယ်။ ပြီးနောက်ရှိသမျှတို့, ဂျာဗား၌အတန်းသွယ်ဝိုက် Object ကိုလူတန်းစားအမွေခံဖြစ်ကြသည်။ သို့သော်ဤချဉ်းကပ်မှုပစ်မှတ်အမျိုးအစားဖို့အရာဝတ္ထုကနေ object တစ်ခု၏သိသာပြောင်းလဲခြင်းအတွက်လုံခြုံရေးအမျိုးအစားများနှင့်ဆက်စပ်သောအများအပြားအမှားအယွင်းများတဲ့အလားအလာအရင်းအမြစ်ဖြစ်ပါတယ်။ ယေဘုယျအသုံးပြုတဲ့အခါအားလုံး Cast အမှားအယွင်းများအဘို့အပင်အလားအလာဖျက်သိမ်းရေး, လုံးလုံးလြားလြားအလိုအလျောက်လုပ်ဆောင်နေကြသည်။
ဂျာဗား General: ဖော်ပြချက်များနှင့်ဥပမာ
ကျွန်တော်တို့ကိုအောက်ကပုံထဲမှာပုံမှန်အတန်းမှအစဉ်အဆက်လျှောက်လွှာတစ်ရိုးရှင်းတဲ့ဥပမာကိုစဉ်းစားကြပါစို့။ ပြီးတော့ဂျာဗား Generic အပေါငျးတို့သပရိယာယ်နှင့်တစ်ခုလုံးကိုပြည့်ပြည့်စုံစုံ၏အသေးစိတ်စာမေးပွဲမှဆက်လက်ဆောင်ရွက်။
အတန်းကြေငြာ Pair ကိုဖြစ်ပေါ်ရသောလမ်းကိုအာရုံစိုက်။ ချက်ချင်းလူတန်းစားနာမကိုအမှီပြီးနောက်, ဤအတန်းအစားတစ်ခုဥပမာပြောရရင်အတွက်လုပ်ငန်းစဉ်၌တည်သော Filler တစ်ဦးကြင်ကြင်နာနာ, တစ်ခုဖြစ်သည်စာ T. ညွှန်ပြပေးသောပွင့်လင်းထောင့်ကွင်းခတ်တစ်ဦးသတ်သတ်မှတ်မှတ်အမျိုးအစားဖြင့်အစားထိုးပါလိမ့်မည်။ အောက်မှာဖော်ပြထားတဲ့အတိုင်းပုံပေါ်သည်: Pair ကို
မှတ်စု: လုပ်ငန်းခွင်ထဲမှာကြေညာရည်ညွှန်းထောင့်ကွင်းခတ်အချည်းနှီးသောကနျြရစျနိုငျသောအခါပစ်မှတ်အမျိုးအစားသတ်မှတ်ခြင်း, Java ၏အဋ္ဌမဗားရှင်းနဲ့စတင်။ Pair ကို
တစ်ဦးလူတန်းစားထို့နောက်သူ့ခန္ဓာကိုယ်အတွက်အစားလယ်ကွင်း, link သင်အက္ခရာကိုသုံးနိုင်သည်နည်းလမ်းများအားဖြင့်ပြန်လာသောတ္ထု၏တိကျသောအမျိုးအစားများ, ထိုကဲ့သို့သောလမ်းအတွက်ကြေငြာသောအခါ။ T ကအတန်းအရာဝတ္ထုဖန်တီးအထူးသဖြင့်အမျိုးအစားဖြင့်အစားထိုးအခါကတည်းကဤကိစ္စတွင်အတွက်ပထမနှင့်ဒုတိယလယ်ကွင်းအမျိုးအစား Integer ၏ဖြစ်လိမ့်မည်။
အဆိုပါအငြင်းပွားမှုများနှင့် firstItem secondItem ၏ယုတ္တိဗေဒအပြီးတွင်လည်းအမျိုးအစား Integer သို့မဟုတ် subclass ၏ဖြစ်ရမည်သင့်လျော်သောလုပ်ငန်းခွင်တွေကိုရည်ညွှန်းပါတယ်။ သင်တစ်ဦးအရာဝတ္ထုဖန်တီးသောအခါသတ်မှတ်ထားသောခဲ့ရာကနေခြားနားတဲ့ဒေတာအမျိုးအစား transmit လုပ်ဖို့ကြိုးစားလျှင်, compiler ကဒီအမှားမသွားပါစေလိမ့်မယ်။ Pair ကို
အတော်ကြာ parameters တွေကိုအတန်းအစားပုံစံများကိုအတူယေဘူယျ
generalized အတန်းထဲတွင်လည်းကော်မာနှင့်အတူထောင့်ကွင်းခတ်ထားသောအမျိုးအစားမျိုးစုံ parameters တွေကိုကြေညာနိုင်ပါတယ်။ Pair ကိုအတန်းအစားအောက်တွင်ဖော်ပြထားသောတင်ပြထားပါသည်တစ်ဦးအမှုအားဖြင့်ဒီဇိုင်း။
သငျသညျမွငျနိုငျသကဲ့သို့သငျထောင့်ကွင်းခတ်၌ဤအတန်းအစားတစ်ခုဥပမာအားဖြင့်ဖန်တီးအခါ, parameters များကိုအဖြစ်အမျိုးအစားများ၏တူညီသောအရေအတွက်ကညွှန်ပြသင့်ပါတယ်။ သင်တစ်ဦးမြေပုံအဖြစ် data တွေကိုဖွဲ့စည်းပုံ၏ဤအမျိုးအစားနှင့်ရင်းနှီးကျွမ်းဝင်လျှင်, သင်ကအတိအကျတူညီမူအရတစ်ခုကိုတွေ့မြင်နိုင်သည်။ တန်ဖိုးကိုအမျိုးအစား - အဲဒီမှာပထမဦးဆုံးအငြင်းအခုံ key ကိုအမျိုးအစား, ဒုတိယသတ်မှတ်ပါတယ်။ ဒါဟာ object တစ်ခုအငြင်းပွားမှုများထပ်စေခြင်းငှါလာသောအခါအမျိုးအစားများမှတဆင့်ကူးစက်သောကြောင်းမှတ်သားရပါမည်။ ဥပမာအားဖြင့်, အောက်ပါကြော်ငြာ Pair ကိုလူတန်းစားဥပမာအားဖြင့်လုံးဝမှန်ကန်သောဖြစ်ပါသည်: Pair ကို
အစဉ်အဆက်အခြို့သော features တွေ
နောက်ထပ်မသွားမီက Java ကို compiler ကအတန်း Pair ကို၏ကွဲပြားခြားနားသောဗားရှင်းကိုမဖန်တီးပါဘူးသတိပြုရပါမည်။ တကယ်တော့တစ်ဦး generalized type ကိုရေးသားထား၏လုပ်ငန်းစဉ်များတွင်အချက်အလက်တွေအားလုံးကိုဖျက်ပစ်နေပါတယ်။ အဲဒီအစားသင် Pair ကိုလူတန်းစား၏အထူးဗားရှင်းအတွက်သင့်လျော်သောအမျိုးအစားများကိုဆောင်ခဲ့ရမည်။ သို့သော်ပရိုဂရမ်တွင်လူတန်းစားသာယေဘုယျဗားရှင်းနေဆဲရှိသေး၏။ ဤဖြစ်စဉ်ကိုဂျာဗား Generic သန့်ရှင်းရေး type ကိုခေါ်ခြင်းဖြစ်သည်။
အရေးပါသောအချက်သတိပြုပါ။ တူညီသော java ယေဘုယျလူတန်းစား၏ကွဲပြားခြားနားသောဗားရှင်း links တဦးတည်းနှင့်အတူတူပင်အရာဝတ္ထုထောက်ပြလို့မရပါဘူး။ Pair ကို
ယေဘုယျအတန်းအပေါ်ကန့်သတ်
ထိုသို့ယေဘုယျလူတန်းစား java အငြင်းအခုံဟာလူတန်းစားအမျိုးအစားဖြစ်ရမည် parameters တွေကိုသွားဖြစ်ပါတယ်, General သာရည်ညွှန်းအမျိုးအစားများမှလျှောက်ထားနိုင်ပါသည်သင်သိရရန်အရေးကြီးပါသည်။ နှစ်ဆသို့မဟုတ်ရှည်လျားထိုကဲ့သို့သောဥပမာအဖြစ်ဒီရိုးရှင်းတဲ့အမျိုးအစားများ, ပြောင်းရွှေ့ရနိုင်မှာမဟုတ်ဘူး။ Pair ကို
နောက်ထပ်လေးနက်န့်အသတ်သို့သော်လည်း parameter အမျိုးအစားတစ်ခုဥပမာအားဖန်တီးရန်နိုင်ခြင်းဖြစ်ပါတယ်။ ဥပမာအားဖြင့်, အောက်ပါလိုင်းတစ်စုစည်းအမှားဖြစ်ပေါ်စေပါလိမ့်မယ်: ကို T ပထမဦးဆုံး = အသစ်များကို T က () ။ သင်တစ်ဦးအငြင်းအခုံအပြည့်အဝလူတန်းစားသို့မဟုတ်စိတ္တဇလွန်, ဒါမှမဟုတ်ပင် interface ရှိမရှိကြိုတင်မသိရပါဘူးဘာဖြစ်လို့လဲဆိုတော့ဒီသိသာသည်။ အလားတူ Array ကိုဖန်တီးတတ်၏။
ကန့်သတ်အမျိုးအစားများ
အတော်လေးမကြာခဏအခြေအနေများကြောင့်ယေဘုယျလူတန်းစား Java တစ်ခုအငြင်းအခုံအဖြစ်ကူးမြောက်နိုင်အမျိုးအစားများစာရင်းကိုကန့်သတ်ရန်ရန်လိုအပ်သောအခါရှိပါသည်။ ငါတို့လူတန်းစား Pair ကိုငါတို့သည်သူတို့အပျေါမှာနောက်ထပ်သင်္ချာစစ်ဆင်ရေးများအတွက်သာကိန်းဂဏန်းတန်ဖိုးများ encapsulate ချင်ကြောင်းယူဆပါစို့။ ဒီလိုလုပ်ဖို့ကျနော်တို့က parameter သည်အမျိုးအစားအထက်ကန့်သတ်သတ်မှတ်ဖို့လိုအပ်ပါတယ်။ ဒါဟာထောင့်ကွင်းခတ်ထဲမှာလွန်အပေါငျးတို့သအငြင်းပွားမှုများအမွေဆက်ခံမယ့် superclass ကြော်ငြာနည်းလမ်းဖြင့်နားလည်သဘောပေါက်ထားပါသည်။ အောက်မှာဖေါ်ပြတဲ့အတိုင်းဒါဟာကြည့်ရှုမည်: လူတန်းစား Pair ကို
ဒါကသာမန်ဧည့်ခံသည်။ ထိုသို့သောကန့်သတ်မကြာခဏတဦးတည်းနှင့်အတူတူပင်အတန်းထဲတွင်လိုက်ဖက်တဲ့အမျိုးအစား parameters များကိုပေးအသုံးပြုကြသည်။ ကျွန်တော်တို့ရဲ့လူတန်းစား Pair ကိုအတွက်ဥပမာစဉ်းစားကြည့်ပါ: လူတန်းစား Pair ကို
က "အောက်ခြေ" ကန့်သတ်အတိအကျတူညီနည်းလမ်းဖြစ်ပါတယ်, ဒါပေမယ့်အစားစကားလုံးများ၏စကားလုံးစူပါစာလုံးပေါင်းဖို့ကိုတိုးချဲ့။ ဒါကလျှို့ဝှက်လူတန်းစား Pair ကို
generic ဂျာဗားနည်းလမ်းများနှင့်တည်ဆောက်
ဂျာဗား၌, ယေဘုယျအားဖြင့်အတန်း, ဒါပေမယ့်လည်းနည်းလမ်းများမှသာလျှောက်ထားနိုင်ပါသည်။ ဥပမာ, ယေဘုယျနည်းလမ်းမှန်မှန်စာသင်ခန်းထဲမှာကြေငြာနိုင်ပါသည်။
အထက်ပါပုံတွင်တွေ့မြင်သကဲ့သို့, ကြော်ငြာ generalized နည်းလမ်းကိုမျှမကြီးတွေသဘောတူညီချက်ဖြစ်ပါသည်။ ယင်းထောင့်ကွင်းခတ်ထားသူတို့ကိုအမျိုးအစား parameters များကိုသတ်မှတ်မယ့်နည်းလမ်း၏ပြန်လာအမျိုးအစားမတိုင်မီလုံလောက်ပေ။
အရာအားလုံးလုပ်ငန်းခွင်မှအလားတူအမှုကိုပြုလျှင်:
သူကမျှမပြန်လာတန်ဖိုးကိုရှိပါတယ်ဘာဖြစ်လို့လဲဆိုတော့ဤကိစ္စတွင်အတွက်ထောင့်ကွင်း, အဒီဇိုင်နာများ၏နာမတော်ရှေ့၌ထားလေ၏။ နှစ်ဦးစလုံးအစီအစဉ်များ၏ရလဒ်ဖြစ်လိမ့်မည်:
integer
ကြိုး
Similar articles
Trending Now