যে কারণে কার্যকরী ইন্টারফেসের অর্থ বুঝতে আপনার অসুবিধা হচ্ছে তার কারণগুলি java.util.functionএখানে বর্ণিত ইন্টারফেসগুলির কোনও অর্থ হয় না! এগুলি মূলত কাঠামোর প্রতিনিধিত্ব করতে উপস্থিত রয়েছে , শব্দার্থক শব্দগুলি নয় ।
এটি বেশিরভাগ জাভা এপিআই-এর জন্য অতিক্রান্ত। সাধারণ জাভা এপিআই, যেমন শ্রেণি বা ইন্টারফেসের অর্থ রয়েছে এবং আপনি এটির জন্য একটি মানসিক মডেল বিকাশ করতে পারেন এবং এটির ক্রিয়াকলাপ বোঝার জন্য এটি ব্যবহার করতে পারেন। java.util.Listউদাহরণস্বরূপ বিবেচনা করুন । ক Listঅন্যান্য বস্তুর একটি ধারক। তাদের একটি ক্রম এবং একটি সূচক রয়েছে। তালিকায় থাকা অবজেক্টের সংখ্যা ফিরে আসে size()। প্রতিটি অবজেক্টের 0.. আকার -1 (অন্তর্ভুক্ত) ব্যাপ্তিতে একটি সূচক থাকে। ইনডেক্সের অবজেক্টটি আমি কল করে পুনরুদ্ধার করতে পারি list.get(i)। এবং তাই এগিয়ে।
কার্যকরী ইন্টারফেসের এর java.util.functionকোনও অর্থ নেই। পরিবর্তে, তারা এমন ইন্টারফেস যা কেবল কোনও ফাংশনের কাঠামোর প্রতিনিধিত্ব করে , যেমন আর্গুমেন্টের সংখ্যা, রিটার্ন মানগুলির সংখ্যা এবং (কখনও কখনও) কোনও যুক্তি বা রিটার্ন মান আদিম কিনা। সুতরাং আমাদের মতো এমন কিছু রয়েছে Function<T,R>যা একটি ফাংশনকে উপস্থাপন করে যা টাইপ টির একক যুক্তি নেয় এবং আর টাইপের মান দেয় । এটাই. এই ফাংশনটি কী করে? ঠিক আছে, এটি যে কোনও কিছু করতে পারে ... যতক্ষণ না এটি একক যুক্তি নেয় এবং একক মান দেয়। এ কারণেই স্পেসিফিকেশনটি Function<T,R>"এমন একটি কার্যকারিতা প্রতিনিধিত্ব করে যা একটি যুক্তি স্বীকার করে এবং ফলাফল উত্পন্ন করে"।
স্পষ্টতই, যখন আমরা কোড লিখছি, এর অর্থ রয়েছে এবং এর অর্থ কোথাও থেকে আসতে হবে। ক্রিয়ামূলক ইন্টারফেসের ক্ষেত্রে, অর্থটি ব্যবহার করা হচ্ছে সেই প্রসঙ্গে থেকেই আসে। ইন্টারফেসের Function<T,R>বিচ্ছিন্নতার কোনও অর্থ নেই। তবে, java.util.Map<K,V>এপিআইতে নিম্নলিখিতটি রয়েছে:
V computeIfAbsent(K key, Function<K,V> mappingFunction)
(বংশবৃদ্ধির জন্য ওয়াইল্ডকার্ড)
আহ, এই ব্যবহারটি Functionএকটি "ম্যাপিং ফাংশন" হিসাবে। এটা কি করে? এই প্রসঙ্গে, যদি keyইতিমধ্যে মানচিত্রে উপস্থিত না থাকে তবে ম্যাপিং ফাংশনটি কল করা হয় এবং কীটি হস্তান্তর করা হয় এবং একটি মান উৎপন্ন করার আশা করা হয়, এবং ফলস্বরূপ কী-মান জোড় মানচিত্রে প্রবেশ করানো হয়।
সুতরাং আপনি Function(বা অন্য কোনও ক্রিয়াকলাপের ইন্টারফেসের জন্য এই বিষয়ে) এর স্পেসিফিকেশনটি দেখতে পারবেন না এবং তাদের অর্থ কী তা বোঝার চেষ্টা করতে পারবেন না। তাদের অর্থ কী তা বোঝার জন্য আপনাকে অন্যান্য এপিআইগুলিতে কোথায় ব্যবহার করা হচ্ছে তা আপনাকে দেখতে হবে এবং এই অর্থটি কেবলমাত্র সেই প্রসঙ্গে প্রযোজ্য।
ConsumerএবংSupplierএছাড়াও আপনি অনুসন্ধান করতে পারে টিউটোরিয়াল জন্যConsumer...