public Field[] getFields() throws SecurityException
সমস্ত অ্যাক্সেসযোগ্য পাবলিক ক্ষেত্রগুলিকে প্রতিফলিত করে এমন ক্ষেত্রের অবজেক্টযুক্ত একটি অ্যারে ফেরত দেয়এই শ্রেণীর অবজেক্ট দ্বারা প্রতিনিধিত্ব করা শ্রেণি বা ইন্টারফেসের প্রদান করে। ফিরে আসা অ্যারের উপাদানগুলি বাছাই করা হয় না এবং কোনও নির্দিষ্ট ক্রমে হয় না। শ্রেণি বা ইন্টারফেসের অ্যাক্সেসযোগ্য পাবলিক ফিল্ড না থাকলে বা এটি কোনও অ্যারে শ্রেণি, একটি আদিম ধরণের বা শূন্যতার প্রতিনিধিত্ব করে তবে এই পদ্ধতিটি দৈর্ঘ্যের 0 টি অ্যারে প্রদান করে।
বিশেষত, যদি এই শ্রেণীর অবজেক্টটি কোনও শ্রেণীর প্রতিনিধিত্ব করে, এই পদ্ধতিটি এই শ্রেণীর সর্বজনীন ক্ষেত্রগুলি এবং এর সমস্ত সুপারক্লাসগুলি প্রদান করে। যদি এই শ্রেণি অবজেক্টটি একটি ইন্টারফেসের প্রতিনিধিত্ব করে, এই পদ্ধতিটি এই ইন্টারফেসের ক্ষেত্রগুলি এবং এর সমস্ত সুপারিনটারফেসগুলি প্রদান করে।
অ্যারে শ্রেণীর জন্য অন্তর্ভুক্ত দৈর্ঘ্যের ক্ষেত্রটি এই পদ্ধতি দ্বারা প্রতিফলিত হয় না। ব্যবহারকারীর কোডে অ্যারে হেরফের করতে শ্রেণীর অ্যারের পদ্ধতিগুলি ব্যবহার করা উচিত।
public Field[] getDeclaredFields() throws SecurityException
এই শ্রেণীর অবজেক্ট দ্বারা প্রতিনিধিত্ব করা শ্রেণি বা ইন্টারফেস দ্বারা ঘোষিত সমস্ত ক্ষেত্রকে প্রতিফলিত করে এমন ফিল্ড অবজেক্টগুলির একটি অ্যারে প্রদান করে। এর মধ্যে সর্বজনীন, সুরক্ষিত, ডিফল্ট (প্যাকেজ) অ্যাক্সেস এবং ব্যক্তিগত ক্ষেত্র অন্তর্ভুক্ত রয়েছে তবে উত্তরাধিকারসূত্রে প্রাপ্ত ক্ষেত্রগুলি বাদ দেয় । ফিরে আসা অ্যারের উপাদানগুলি বাছাই করা হয় না এবং কোনও নির্দিষ্ট ক্রমে হয় না। শ্রেণি বা ইন্টারফেসটি কোনও ক্ষেত্র ঘোষণা না করে বা এই শ্রেণি অবজেক্টটি যদি কোনও আদিম প্রকার, একটি অ্যারে শ্রেণি বা শূন্যতার প্রতিনিধিত্ব করে তবে এই পদ্ধতিটি দৈর্ঘ্যের 0 টি অ্যারে প্রদান করে।
এবং যদি আমার সমস্ত অভিভাবক শ্রেণীর সমস্ত ক্ষেত্রের প্রয়োজন হয়? কিছু কোড প্রয়োজন, যেমন https://stackoverflow.com/a/35103361/755804 থেকে :
public static List<Field> getAllModelFields(Class aClass) {
List<Field> fields = new ArrayList<>();
do {
Collections.addAll(fields, aClass.getDeclaredFields());
aClass = aClass.getSuperclass();
} while (aClass != null);
return fields;
}
getField
একটি সুপারক্লাস থেকে উত্তরাধিকার সূত্রে ক্ষেত্র পেতে পারে তবে তাgetDeclaredField
পারে না।getDeclaredField
আপনি যে ক্লাসটিতে কল করেন তার মধ্যে নিজেকে সীমাবদ্ধ করুন।