জাভা রিফ্লেকশন এপিআই: আপনার জানা দরকার



এই নিবন্ধটি আপনাকে জাভা প্রতিবিম্ব এপিআইয়ের সাথে পরিচয় করিয়ে দেবে এবং জাভাতে প্রতিবিম্ব কীভাবে কাজ করে এবং বিক্ষোভের সাথে এটি ঠিক কীভাবে সহায়তা করবে

প্রতিবিম্ব ইহা একটি রান সময়টিতে কোনও শ্রেণীর রানটাইম আচরণ পরীক্ষা বা সংশোধন করার প্রক্রিয়া জাভা প্রতিবিম্ব API ক্লাস এবং এর সদস্যদের পরিচালনা করার জন্য ব্যবহৃত হয় যা রানটাইমের সময় ক্ষেত্র, পদ্ধতি, নির্মাতা, ইত্যাদি অন্তর্ভুক্ত। এই নিবন্ধে আমরা জাভা প্রতিবিম্ব API বিস্তারিতভাবে বুঝতে হবে।

এই নিবন্ধটি নিম্নলিখিত পয়েন্টারগুলিতে ফোকাস করবে:





সুতরাং আসুন জাভা রিফ্লেকশন API এ এই নিবন্ধটিতে এই পয়েন্টারগুলি দিয়ে শুরু করি

জাভা প্রতিবিম্ব এপিআই কোথায় ব্যবহার করা হয়?

প্রতিবিম্ব এপিআই মূলত:



  • আইডিই (সমন্বিত উন্নয়ন পরিবেশ) উদাঃ এক্সিলিপস, মাইএক্লিপস, নেটবিনস ইত্যাদি
  • ডিবাগার
  • পরীক্ষার সরঞ্জামাদি ইত্যাদি

সুতরাং জাভা ল্যাং ক্লাস কি প্যাকেজ প্রতিফলিত হয়?

Java.lang.reflect প্যাকেজে ক্লাস?

প্রতিবিম্ব বাস্তবায়ন করতে java.lang.package এর বিভিন্ন জাভা ক্লাসগুলির একটি তালিকা নীচে দেওয়া আছে -

  • মাঠ : এই শ্রেণিটি ডেটাটাইপ, অ্যাক্সেস মডিফায়ার, নাম এবং একটি ভেরিয়েবলের মানের মতো ঘোষণামূলক তথ্য সংগ্রহ করতে ব্যবহৃত হয়।
  • পদ্ধতি : এই ক্লাসটি অ্যাক্সেস মডিফায়ার, রিটার্নের ধরণ, নাম, প্যারামিটারের ধরণের এবং কোনও পদ্ধতির ব্যতিক্রম প্রকারের মতো ঘোষণামূলক তথ্য সংগ্রহ করতে ব্যবহৃত হয়।
  • নির্মাতা : এই শ্রেণিটি অ্যাক্সেস মডিফায়ার, নাম এবং কোনও নির্মাণকারীর পরামিতি ধরণের মতো ঘোষণামূলক তথ্য সংগ্রহ করতে ব্যবহৃত হয়।
  • সম্পাদনা করুন : এই শ্রেণিটি নির্দিষ্ট অ্যাক্সেস মডিফায়ার সম্পর্কিত তথ্য সংগ্রহ করতে ব্যবহৃত হয়।

আমাদের জাভা রিফ্লেকশন এপিআই পদ্ধতিগুলি একবার দেখে নিই না,



জাভা.লং.ক্লাসে ব্যবহৃত পদ্ধতিগুলি

পদ্ধতি

বর্ণনা

পাবলিক স্ট্রিং getName ()

শ্রেণীর নাম ফেরত দেয়

নেম (স্ট্রিং ক্লাসনাম) এর জন্য পাবলিক স্ট্যাটিক ক্লাস ক্লাসনটফাউন্ডএক্সেপশন ছুড়ে দেয়

জাভা নিক্ষেপ এবং নিক্ষেপ মধ্যে পার্থক্য

ক্লাস লোড করে এবং ক্লাস শ্রেণির রেফারেন্স প্রদান করে।

পাবলিক অবজেক্ট নিউ ইনস্ট্যান্স () ছুড়ে ফেলে ইনস্ট্যান্টেশন এক্সেক্সশন, অবৈধঅ্যাক্সেস এক্সসেপশন

নতুন উদাহরণ তৈরি করে।

পাবলিক বুলিয়ান হল ইন্টারফেস ()

এটি ইন্টারফেস কিনা তা পরীক্ষা করে।

পাবলিক বুলিয়ান হল অ্যারে ()

সি প্রোগ্রামে লিঙ্কযুক্ত তালিকা

এটি অ্যারে কিনা তা পরীক্ষা করে দেখুন।

পাবলিক বুলিয়ান প্রিমিটিভ ()

এটি আদিম কিনা তা পরীক্ষা করে দেখুন।

পাবলিক ক্লাস getSuperclass ()

সুপারক্লাস শ্রেণির রেফারেন্স প্রদান করে।

সর্বজনীন ক্ষেত্র [] getDeclaredFields () সিকিউরিটি এক্সসেপশন ছুড়ে দেয়

এই শ্রেণীর মোট ক্ষেত্রের সংখ্যা প্রদান করে।

সর্বজনীন পদ্ধতি [] getDeclaredMethods () সিকিউরিটি এক্সসেপশন নিক্ষেপ করে

এই শ্রেণীর মোট পদ্ধতির সংখ্যা প্রদান করে।

পাবলিক কনস্ট্রাক্টর [] getDeclaredConstructors () সিকিউরিটি এক্সসেপশনকে ছুড়ে ফেলে

এই শ্রেণীর মোট নির্মাণকারীর সংখ্যা প্রদান করে।

পাবলিক পদ্ধতি getDlalaMethod (স্ট্রিং নাম, শ্রেণি [] প্যারামিটার টাইপস) নিক্ষিপথ মেথডএক্সসেপশন, সিকিউরিটিএক্সসেপশন

পদ্ধতি শ্রেণীর উদাহরণ প্রদান করে।

আসুন নিবন্ধটি নিয়ে এগিয়ে চলুন,

ক্লাস ক্লাসের অবজেক্টটি কীভাবে পাবেন?

ক্লাস ক্লাসের উদাহরণ পাওয়ার 3 টি উপায় রয়েছে। অনুসরণ হিসাবে তারা:

  • forName () ক্লাস ক্লাসের পদ্ধতি
  • অবজেক্ট ক্লাসের getClass () পদ্ধতি
  • .ক্লাস সিনট্যাক্স

forName () ক্লাস ক্লাসের পদ্ধতি

  • ক্লাসটি গতিময়ভাবে লোড করতে ব্যবহৃত হয়।
  • ক্লাস ক্লাসের উদাহরণ প্রদান করে।
  • আপনি যদি শ্রেণীর পুরোপুরি যোগ্যতাসম্পন্ন নামটি জানেন তবে এটি ব্যবহার করা উচিত his এটি আদিম ধরণের জন্য ব্যবহার করা যায় না।

আসুন ফর্মনেম () পদ্ধতির সহজ উদাহরণটি দেখুন।

ক্লাস সিম্পল {} ক্লাস টেস্ট {পাবলিক স্ট্যাটিক শূন্য মূল (স্ট্রিং আরগস []) {শ্রেণি সি = Class.forName ('সাধারণ') System.out.println (c.getName ())}

আউটপুট:

সরল

জাভা প্রতিবিম্ব: এপিআই গেটক্লাস () অবজেক্ট শ্রেণির পদ্ধতি

এটি ক্লাস ক্লাসের উদাহরণ দেয়। আপনি যদি টাইপটি জানেন তবে এটি ব্যবহার করা উচিত। তদতিরিক্ত, এটি আদিম সঙ্গে ব্যবহার করা যেতে পারে।

ক্লাস সিম্পল {} ক্লাস টেস্ট {শূন্য প্রিন্টনাম (অবজেক্ট অবজেক্ট) {ক্লাস সি = অজেক্ট.সেট ক্লাস () System.out.println (c.getName ())} পাবলিক স্ট্যাটিক শূন্য মূল (স্ট্রিং আরগস []) {সরল এস = নতুন সরল () টেস্ট টি = নতুন পরীক্ষা () টি.প্রিন্টনাম s}

আউটপুট:

সরল

pl বর্গক্ষেত্র ব্যতিক্রম হ্যান্ডলিং

.ক্লাস সিনট্যাক্স

যদি কোনও প্রকার উপলব্ধ থাকে তবে উদাহরণ না থাকে তবে টাইপের নামে '.ক্লাস' যুক্ত করে একটি ক্লাস নেওয়া সম্ভব। এটি আদিম তথ্য টাইপের জন্যও ব্যবহার করা যেতে পারে।

শ্রেণি পরীক্ষা {পাবলিক স্ট্যাটিক শূন্য মূল (স্ট্রিং আরগস []) {ক্লাস সি = বুলেটিয়ানক্লাস সিস্টেম.আউট.প্রিন্টলন (c.getName ()) ক্লাস সি 2 = টেস্টক্লাস সিস্টেম.আউট.প্রিন্টলন (c2.getName ()) }}

আউটপুট:

বুলিয়ান

পরীক্ষা

এখন এই জাভা প্রতিবিম্ব এপিআই নিবন্ধটি দিয়ে চালিয়ে দেওয়া যাক

জাভা রিফ্লেকশন এপিআই ব্যবহারের সুবিধা এবং অসুবিধা

জাভা প্রতিবিম্ব API ব্যবহার করার সুবিধা

  • এক্সটেনসিবিলিটি বৈশিষ্ট্য: কোনও অ্যাপ্লিকেশন তাদের সম্পূর্ণরূপে যোগ্য নাম ব্যবহার করে এক্সটেনসিবিলিটি অবজেক্টগুলির উদাহরণ তৈরি করে বাহ্যিক, ব্যবহারকারী-সংজ্ঞায়িত শ্রেণীর ব্যবহার করতে পারে।
  • ডিবাগিং এবং পরীক্ষার সরঞ্জাম : ডিবাগাররা ক্লাসে ব্যক্তিগত সদস্যদের পরীক্ষা করতে প্রতিবিম্বের সম্পত্তি ব্যবহার করে।

জাভা প্রতিবিম্ব API ব্যবহারের অসুবিধা

  • পারফরম্যান্স ওভারহেড: প্রতিফলনমূলক ক্রিয়াকলাপগুলির তাদের অ-প্রতিবিম্বিত অংশগুলির তুলনায় ধীর কার্যকারিতা রয়েছে এবং কোডের এমন অংশগুলিতে এড়ানো উচিত যা কার্যক্ষমতা-সংবেদনশীল অ্যাপ্লিকেশনগুলিতে প্রায়শই বলা হয়।
  • অভ্যন্তরীণ এক্সপোজার: রিফ্লেক্টিভ কোড বিমূর্ততাগুলিকে বিরতি দেয় এবং তাই প্ল্যাটফর্মের আপগ্রেডের সাথে আচরণ পরিবর্তন করতে পারে।

এইভাবে আমরা ‘জাভা রিফ্লেকশন এপিআই’ সম্পর্কিত এই নিবন্ধটির শেষে এসেছি। আপনি যদি আরও জানতে চান,পরীক্ষা করে দেখুন এডুরেকা, একটি বিশ্বস্ত অনলাইন লার্নিং সংস্থা। এডুরেকার জাভা জে 2 ইই এবং এসওএ প্রশিক্ষণ এবং শংসাপত্রের কোর্সটি হিবারনেট ও স্প্রিংয়ের মতো বিভিন্ন জাভা ফ্রেমওয়ার্কের পাশাপাশি আপনাকে মূল এবং উন্নত জাভা উভয় ধারণার জন্য প্রশিক্ষণের জন্য তৈরি করা হয়েছে।

আমাদের জন্য একটি প্রশ্ন আছে? দয়া করে এই নিবন্ধের মন্তব্য বিভাগে এটি উল্লেখ করুন এবং আমরা যত তাড়াতাড়ি সম্ভব আপনার কাছে ফিরে আসব।