আমি ওরাকলডোকজেনেরিকমেথোড থেকে জেনেরিক পদ্ধতিগুলি সম্পর্কে পড়ছি । আমি কখন তুলনা সম্পর্কে বিভ্রান্ত যখন এটি বলছে কখন ওয়াইল্ড-কার্ড ব্যবহার করবেন এবং কখন জেনেরিক পদ্ধতি ব্যবহার করবেন। দস্তাবেজ থেকে উদ্ধৃতি।
interface Collection<E> { public boolean containsAll(Collection<?> c); public boolean addAll(Collection<? extends E> c); }
পরিবর্তে আমরা এখানে জেনেরিক পদ্ধতি ব্যবহার করতে পারতাম:
interface Collection<E> { public <T> boolean containsAll(Collection<T> c); public <T extends E> boolean addAll(Collection<T> c); // Hey, type variables can have bounds too! }
[…] এটি আমাদের বলে যে টাইপ আর্গুমেন্ট বহুবর্ষের জন্য ব্যবহৃত হচ্ছে; এর একমাত্র প্রভাবটি হ'ল বিভিন্ন অনুরোধের সাইটে বিভিন্ন আসল আর্গুমেন্ট ধরণের ব্যবহারের অনুমতি দেওয়া। যদি এটি হয় তবে একজনের ওয়াইল্ডকার্ড ব্যবহার করা উচিত। ওয়াইল্ডকার্ডগুলি নমনীয় সাব টাইপিং সমর্থন করার জন্য ডিজাইন করা হয়েছে, যা আমরা এখানে প্রকাশ করার চেষ্টা করছি।
আমরা কি মনে করি না ওয়াইল্ড কার্ডের মতো (Collection<? extends E> c);
একধরণের পলিমারফিজমকে সমর্থন করে? তাহলে কেন জেনেরিক পদ্ধতির ব্যবহার এটিকে ভাল না বলে বিবেচনা করা হয়?
এগিয়ে চালিয়ে, এটিতে বলা হয়েছে,
জেনেরিক পদ্ধতিগুলি কোনও পদ্ধতিতে এবং / অথবা এর রিটার্নের ধরণের এক বা একাধিক আর্গুমেন্টের মধ্যে নির্ভরতা প্রকাশ করতে টাইপ পরামিতিগুলি ব্যবহার করার অনুমতি দেয়। যদি এমন নির্ভরতা না থাকে তবে একটি জেনেরিক পদ্ধতি ব্যবহার করা উচিত নয়।
এটার মানে কি?
তারা উদাহরণ উপস্থাপন করেছেন
class Collections { public static <T> void copy(List<T> dest, List<? extends T> src) { ... }
[...]
আমরা ওয়াইল্ডকার্ড ব্যবহার না করেই এই পদ্ধতির জন্য স্বাক্ষরটি অন্য কোনওভাবে লিখতে পারতাম:
class Collections { public static <T, S extends T> void copy(List<T> dest, List<S> src) { ... }
দস্তাবেজটি দ্বিতীয় ঘোষণাকে নিরুৎসাহিত করে এবং প্রথম সিনট্যাক্সের ব্যবহারকে উত্সাহ দেয়? প্রথম এবং দ্বিতীয় ঘোষণার মধ্যে পার্থক্য কী? দুজনেই কি একই কাজ করছে বলে মনে হচ্ছে?
এই অঞ্চলটিতে কেউ আলোকপাত করতে পারে।
?
। আপনি এটিকে পুনরায় লিখতে পারবেন `পাবলিক স্ট্যাটিক <টি 1 প্রসারিত সংখ্যা, টি 2 বিস্তৃত সংখ্যা> শূন্য অনুলিপি (তালিকা <T1> ভাগ্য, তালিকা <T2> src) এবং এই ক্ষেত্রে এটি স্পষ্ট হয়ে ওঠে যা চলছে।