Type parameter သည်unsafe cast မလိုဘဲcaller ၏element type ကိုထိန်းပေးပါတယ်။
ပိုပြီးနားလည်ထားရမယ့် အချက်
Generics ကcompile-time type safety နဲ့reusable algorithms ပေးပါတယ်။ Java generics သည်invariant ဖြစ်ပြီးwildcards အတွက် producer-extends, consumer-super (PECS) ကိုသုံးကာtype erasure ကြောင့်runtime limitations ရှိတာကိုသိပါ။
လက်တွေ့မှာ ဘယ်လိုအသုံးချမလဲ
Generic `first` method နဲ့copy method ကိုbounded/wildcard forms ဖြင့်ရေးပြီးraw type warning နဲ့invalid assignment ကိုcompiler ကဖမ်းကြောင်းစမ်းပါ။
ဒီသင်ခန်းစာပြီးရင်
import java.util.List;
class Main {
static <T> T first(List<T> values) {
if (values.isEmpty()) throw new IllegalArgumentException("empty list");
return values.getFirst();
}
public static void main(String[] args) {
String name = first(List.of("Ada", "Linus"));
System.out.println(name);
}
}Adaကိုယ်တိုင်စမ်းကြည့်ရန်
Generic `first` method နဲ့copy method ကိုbounded/wildcard forms ဖြင့်ရေးပြီးraw type warning နဲ့invalid assignment ကိုcompiler ကဖမ်းကြောင်းစမ်းပါ။
Common Mistake သတိပေးချက်
`List<Integer>` သည်`List<Number>` subtype ဖြစ်သည်ဟုယူဆခြင်း သို့မဟုတ်raw types ဖြင့်warnings ကိုဖျောက်ခြင်း။