আপনি যা চাইছেন তা করার জন্য কোনও ভাষাগত সমর্থন নেই।
প্রতিচ্ছবি ব্যবহার করে রান-টাইমে কোনও ধরণের সদস্যদের আপনি প্রতিবিম্বিতভাবে অ্যাক্সেস করতে পারেন (উদাহরণস্বরূপ Class.getDeclaredFields()
একটি অ্যারে পেতে Field
) তবে আপনি যা করার চেষ্টা করছেন তার উপর নির্ভর করে এটি সেরা সমাধান হতে পারে না।
আরো দেখুন
সম্পর্কিত প্রশ্নাবলী
উদাহরণ
প্রতিবিম্ব কী করতে সক্ষম তা কেবল কিছু দেখানোর জন্য এখানে একটি সাধারণ উদাহরণ।
import java.lang.reflect.*;
public class DumpFields {
public static void main(String[] args) {
inspect(String.class);
}
static <T> void inspect(Class<T> klazz) {
Field[] fields = klazz.getDeclaredFields();
System.out.printf("%d fields:%n", fields.length);
for (Field field : fields) {
System.out.printf("%s %s %s%n",
Modifier.toString(field.getModifiers()),
field.getType().getSimpleName(),
field.getName()
);
}
}
}
উপরের স্নিপেট সমস্ত ঘোষিত ক্ষেত্র পরিদর্শন করতে প্রতিবিম্ব ব্যবহার করে class String
; এটি নিম্নলিখিত আউটপুট উত্পাদন করে:
7 fields:
private final char[] value
private final int offset
private final int count
private int hash
private static final long serialVersionUID
private static final ObjectStreamField[] serialPersistentFields
public static final Comparator CASE_INSENSITIVE_ORDER
কার্যকর জাভা 2 য় সংস্করণ, আইটেম 53: প্রতিচ্ছবি ইন্টারফেস পছন্দ
এগুলি বইয়ের কিছু অংশ:
একটি প্রদত্ত Class
বস্তু, আপনি পেতে পারেন Constructor
, Method
এবং Field
দৃষ্টান্ত কনস্ট্রাকটর, পদ্ধতি এবং ক্লাস ক্ষেত্র উপস্থাপন করে। [তারা] আপনাকে তাদের অন্তর্নিহিত অংশগুলিকে প্রতিফলিতভাবে ম্যানিপুলেট করতে দেয় । এই শক্তিটি অবশ্য দামে আসে:
- সংকলন-সময় যাচাইয়ের সমস্ত সুবিধা আপনি হারাতে পারেন।
- প্রতিবিম্বিত অ্যাক্সেস সম্পাদন করার জন্য প্রয়োজনীয় কোডটি আনাড়ি এবং ভার্বোস।
- পারফরম্যান্স ভোগ করে।
একটি নিয়ম হিসাবে, রানটাইমের সময় সাধারণ অ্যাপ্লিকেশনগুলিতে বস্তুর প্রতিফলিতভাবে অ্যাক্সেস করা উচিত নয়।
কয়েকটি পরিশীলিত অ্যাপ্লিকেশন রয়েছে যার প্রতিচ্ছবি প্রয়োজন। উদাহরণগুলির মধ্যে অন্তর্ভুক্ত রয়েছে [... উদ্দেশ্য অনুসারে বাদ দেওয়া ...] যদি আপনার অ্যাপ্লিকেশনটি এই বিভাগগুলির মধ্যে একটির মধ্যে পড়ে কিনা তা নিয়ে আপনার যদি সন্দেহ থাকে তবে সম্ভবত তা হয় না।