একটি জাভা ক্লাস রানটাইমের সময় আরেকটি বাড়িয়ে দিলে কীভাবে পরীক্ষা করবেন?


উত্তর:



84

যদি আপনি জানতে চান যে কোনওটি বাড়িয়ে দেয় কি না Class, ক্লাস # isAignignableFrom (Class) ব্যবহার করুন । আপনার উদাহরণের জন্য, এটি হবে:

if(B.class.isAssignableFrom(A.class)) { ... }

আপনি যদি কোনও উদাহরণ নির্দিষ্ট ধরণের কিনা তা নিয়ে আগ্রহী হন, তবে ব্যবহার করুন instanceof:

A obj = new A();
if(obj instanceof B) { ... }

নোট করুন যে trueশ্রেণি / উদাহরণ টাইপ শ্রেণিবিন্যাসের সদস্য এবং সরাসরি সুপারক্লাস / সাবক্লাস সম্পর্কের ক্ষেত্রে সীমাবদ্ধ না থাকলে এগুলি ফিরে আসবে । উদাহরণ স্বরূপ:

// if A.class extends B.class, and B.class extends C.class
C.class.isAssignableFrom(A.class); // evaluates to true
// ...and...
new A() instanceof C; // evaluates to true

আপনি যদি সরাসরি সুপারক্লাস / সাবক্লাস সম্পর্কগুলি পরীক্ষা করতে চান তবে টিম একটি উত্তরও সরবরাহ করেছে


2
প্রকৃতপক্ষে, এটি B.class.isAignignableFrom (A.class), যেহেতু তিনি জানতে চান যে A বি এর একটি সাবক্লাস কিনা
মেরিটন

1
হ্যাঁ হ্যাঁ, আমি এটি পরিবর্তন করব। সাধারণত উদাহরণগুলি অন্য উপায়ে হয় (বি প্রসারিত এ)।
রব হুরস্কা

ট্রিকড ইয়া ;-p বিস্তারিত উত্তরের জন্য অনেক ধন্যবাদ; আমি মেধা স্বীকার করছি যদিও এটি পরিষ্কার আইএমও।
আর্মান্দ

42

আপনি জানতে চান যে b এগুলি থেকে যোগ্য নিয়োগযোগ্য কিনা a:

b.isAssignableFrom(a);

অতিরিক্ত হিসাবে, আপনি যদি এটি জানতে চান যে aএটির সরাসরি উপক্লাস b:

a.getSuperclass().equals(b);

উত্তরের জন্য ধন্যবাদ, এবং প্রশ্নটি ব্যবহার aএবং ব্যবহারের জন্য ধন্যবাদb
আর্মান্দের
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.