كيف تحصل على فئة فئة مجردة (كائن) في جافام؟
سؤال
أحتاج إلى الحصول على فئة كائن في وقت التشغيل.
بالنسبة لفصل غير مبتذل ، يمكنني أن أفعل شيئًا مثل:
public class MyNoneAbstract{
public static Class MYNONEABSTRACT_CLASS = new MyNoneAbstract().getClass();
لكن بالنسبة لفصل مجردة ، لا يعمل هذا (يعطيني دائمًا Object
)
public abstract class MyAbstract{
public static Class MYABSTRACT_CLASS = MyAbstract.class.getClass();
سيتم تشغيل هذا الرمز في بيئات Javame.
المحلول
تحتاج فقط
MyAbstract.class
هذا التعبير يرجع كائن الفئة الذي يمثل myabstract.
نصائح أخرى
الرمز الذي تريده في الحالة التجريدية هو:
public abstract class MyAbstract{
public static Class MYABSTRACT_CLASS = MyAbstract.class;
}
على الرغم من أنني شخصياً لن أكلف نفسي عناء تحديد الثابت واستخدمت myabstract.class طوال الوقت.
كنت أتوقع أن يكون الرمز الذي كتبته قد أعاد "الفصل" ، وليس "كائن" الفصل.
أعتقد أن المزيد من المعلومات مطلوبة هنا. في جافا ، لا يمكن إنشاء طبقة مجردة. هذا يعني أن كائنًا في وقت التشغيل لا يمكن أن يكون صفه مجردة. يجب أن تكون فئة فرعية تنفذ جميع الأساليب المجردة. في Javame ، Object.getClass()
يجب أن يكون كل ما تحتاجه. هل تحاول بطريقة ما إعادة تكوين التسلسل الهرمي في الفصل في وقت التشغيل؟
في هذه الحالة ، يمكنك تنفيذ شيء مثل هذا بدلاً من ذلك:
public String getClassHierarchy() {
return super.getClassHierarchy() + ".MyAbstract";
}