অন্যরা যেমন উল্লেখ করেছে, আপনি ক্লাস ভেরিয়েবলটি পাস করতে পারবেন না instanceof
কারণ শ্রেণি ভেরিয়েবল কোনও অবজেক্টের উদাহরণ উল্লেখ করে , যখন ডান হাতের প্রকারটিinstanceof
হতে হয় । এর অর্থ এই নয় যে "y অবজেক্ট এক্সের একটি উদাহরণ", এর অর্থ "y হ'ল এক্স টাইপের উদাহরণ"। আপনি যদি কোনও অবজেক্ট এবং প্রকারের মধ্যে পার্থক্য জানেন না, তবে বিবেচনা করুন: instanceof
Object o = new Object();
এখানে, টাইপটি হ'ল Object
, এবং o
সেই প্রকারের সাথে অবজেক্টের উদাহরণের উল্লেখ reference এইভাবে:
if(o instanceof Object)
বৈধ কিন্তু
if(o instanceof o)
o
ডান হাতের কোনও কারণ নয়, কারণ এটি নয়।
আপনার ক্ষেত্রে আরও নির্দিষ্ট, একটি শ্রেণীর উদাহরণ কোনও ধরণের নয়, এটি একটি অবজেক্ট (যা আপনার জন্য জেভিএম তৈরি করেছে) created আপনার পদ্ধতিতে, Class
এক প্রকার, তবে clazz
এটি একটি অবজেক্ট (ভাল, কোনও বস্তুর রেফারেন্স))
আপনার যা প্রয়োজন তা হ'ল একটি বস্তুকে ক্লাস অবজেক্টের সাথে তুলনা করার একটি উপায়। এটা পরিনত হয় যে এই জনপ্রিয়, তাই এই শ্রেণীর অবজেক্ট পদ্ধতি হিসেবে আপনাকে সরবরাহিত হয়: isInstance()
।
এখানে আইসিসট্যান্সের জন্য জাভা ডক, যা এটি আরও ভালভাবে ব্যাখ্যা করে:
public boolean isInstance(Object obj)
নির্দিষ্ট ক্লাবটি এই শ্রেণীর দ্বারা প্রতিনিধিত্ব করা অবজেক্টের সাথে অ্যাসাইনমেন্ট-সামঞ্জস্যপূর্ণ কিনা তা নির্ধারণ করে। এই পদ্ধতিটি জাভা ভাষার উদাহরণস্বরূপ অপারেটরের গতিশীল সমতুল্য। পদ্ধতিটি সত্যটি প্রত্যাবর্তন করে যদি নির্দিষ্ট অবজেক্ট আর্গুমেন্টটি নাল নয় এবং ক্লাসকাস্টএক্সসেপশন উত্থাপন ছাড়াই এই শ্রেণীর অবজেক্ট দ্বারা প্রতিনিধিত্ব করা রেফারেন্স টাইপটিতে ফেলে দেওয়া যেতে পারে। এটি অন্যথায় মিথ্যা ফেরত দেয়।
বিশেষত, যদি এই শ্রেণি অবজেক্টটি একটি ঘোষিত শ্রেণীর প্রতিনিধিত্ব করে তবে নির্দিষ্ট পদ্ধতিটির যুক্তি উপস্থাপন করা শ্রেণীর উদাহরণ (বা এর কোনও সাবক্লাসের) হলে এই পদ্ধতিটি সত্য হয়; অন্যথায় এটি মিথ্যা প্রত্যাবর্তন করে। যদি এই শ্রেণি অবজেক্টটি অ্যারে শ্রেণীর প্রতিনিধিত্ব করে তবে নির্দিষ্ট পদ্ধতিটির যুক্তিটি পরিচয় রূপান্তর বা একটি প্রসারিত রেফারেন্স রূপান্তর দ্বারা অ্যারে শ্রেণীর কোনও বস্তুতে রূপান্তর করা যেতে পারে যদি এই পদ্ধতিটি সত্য হয়; এটি অন্যথায় মিথ্যা ফিরে। যদি এই শ্রেণীর অবজেক্টটি একটি ইন্টারফেসের প্রতিনিধিত্ব করে, নির্দিষ্ট করা অবজেক্ট আর্গুমেন্টের ক্লাস বা কোনও সুপারক্লাস এই ইন্টারফেসটি প্রয়োগ করে তবে এই পদ্ধতিটি সত্য ফিরে আসে; এটি অন্যথায় মিথ্যা ফিরে। যদি এই শ্রেণীর অবজেক্টটি কোনও আদিম ধরণের প্রতিনিধিত্ব করে তবে এই পদ্ধতিটি মিথ্যা প্রত্যাখ্যান করে।
পরামিতি: অবজেক্ট -
রিটার্নগুলি যাচাই করার জন্য অবজেক্ট : সত্য যদি এই ক্লাসের উদাহরণ হয়
তবে: জেডিকে 1.1