কম্পিউটার টিউটোরিয়াল

জাভা ৯-এ module-info ফাইলের কম্পোনেন্টগুলো কী কী?

একটি মডিউল হলো একটি স্বাধীন অ্যাপ্লিকেশন ইউনিট যা একটি সিঙ্গল ফাংশনালিটি রিপ্রেজেন্ট করে। একটি মডিউলে তিনটি গুরুত্বপূর্ণ কম্পোনেন্ট থাকে:

  • নেম (Name): विशিষ্টভাবে আইডেন্টিফাই করার জন্য
  • ডিপেন্ডেন্সি (Dependencies): যেসব মডিউলে এটি ডিপেন্ড করে
  • এক্সপোর্টেড প্যাকেজ (Exported packages): যেসব প্যাকেজ এক্সটার্নাল অ্যাপ্লিকেশনের জন্য ওপেন

একটি মডিউল ডিক্লেয়ার করতে হলে "module-info.java" ফাইলটি রুট সোর্স কোডে যোগ করতে হয়। "module-info.java" ফাইলটির কম্পোনেন্টগুলো হলো "name", "requires", "exports", এবং "exports to"।

module-info.java ফাইল টেমপ্লেট

module <module-name> {
    requires <module-name1> ;
    requires <module-name2>;
    ...
    exports <package-name1>;
    exports <package-name2>;
    ...
    exports <package-name> to <module-name>;
}

প্রতিটি কম্পোনেন্টের বিবরণ

  • Name: মডিউলের একটি গুরুত্বপূর্ণ বৈশিষ্ট্য। মডুলার সিস্টেম নাম দিয়ে মডিউল আইডেন্টিফাই করে, তাই এটি ইউনিক হতে হয়।
  • requires: এই ক্লজ ডিপেন্ডেন্সি এবং এক্সটার্নাল মডিউল ডিফাইন করতে ব্যবহৃত হয় যেগুলোতে কারেন্ট মডিউল ডিপেন্ডেন্ট। "module-info.java" ফাইলে প্রতিটি ডিপেন্ডেন্ট মডিউলের জন্য আলাদা "requires" এন্ট্রি দরকার। জাভা ৯-এ একটি বেস মডিউল রয়েছে। এটি একটি স্বাধীন মডিউল যা অন্য কোনো মডিউল রিকোয়ার করে না। "requires" ক্লজ ব্যবহার করা লাগে না। এই বেস মডিউল ডিফল্টলি উপলব্ধ।
  • exports: "exports" ক্লজ কারেন্ট মডিউলের এক্সপোর্ট করা প্যাকেজ ডিফাইন করতে ব্যবহৃত হয়। এই প্যাকেজগুলো অন্য মডিউল ব্যবহারের জন্য ওপেন। "module-info.java" ফাইলে প্রতিটি এক্সপোর্টেড মডিউলের জন্য আলাদা "exports" এন্ট্রি দরকার।
  • exports to: "exports to" ক্লজ একটি প্যাকেজ শুধু নির্দিষ্ট মডিউলগুলোর জন্য এক্সপোর্ট করতে ব্যবহৃত হয়, সবার জন্য এক্সপোর্ট করার বদলে।
  1. জাভা ৯-এ জেশেলের উপযোগী কমান্ডগুলো

  2. জাভা ৯-এ Process API-এর উন্নতি

  3. জাভা ৯-এ CompletableFuture API-এর উন্নতি

  4. জাভা ৯-এ try-with-resources-এর উন্নতি