سؤال

لقد عدت للتو إلى تطوير MIDP بعد حوالي 4 سنوات من .NET 2 وجافا 5 و 6. خلال ذلك الوقت حصلت على استخدام العادة كثيرا.

ENUM هي ميزة لغوية تسمح للمطور بثقة أكبر في بعض أجزاء رمزه، خصيصا لتمكنت من تجنب أو اكتشاف الأخطاء في وقت سابق (أثناء التجميع). يمكن العثور على بعض المزايا الأخرى هنا: http: // java.sun.com/j2se/1.5.0/docs/guide/language/enums.html

لقد وجدت أنه من الغريب أن أجدهم في MIDP 2.0. لدي رسالة الخطأ هذه:

لا ينبغي استخدام "نوع" ENUM "كمعرف، لأنه كلمة رئيسية محفوظة من مصدر المستوى 1.5"

كان لدي بعض الخبرة في جافا 1.4 لفترة أخرى، لكنني لم أتذكر هذا. هناك متأكد من بعض ميزات الإصدارات الأحدث لغاتك الرفيعة المستوى التي تحصل عليها أمرا مفروغا منه ...

على أي حال، إليك توصية جيدة لما يجب القيام به بدونها (إذا كنت تقوم بتطوير الحائط أو التعامل مع الرمز قبل Java 5): http: // www.javacamp.org/designpattern/enum.html

تلخيصه (لمزيد من التفاصيل وشرح جيد، اتبع الرابط السابق. شكرا جزيلا للمؤلف الأصلي):

//The typesafe enum pattern
public class Suit {
    private final String name;

    public static final Suit CLUBS =new Suit("clubs");
    public static final Suit DIAMONDS =new Suit("diamonds");
    public static final Suit HEARTS =new Suit("hearts");
    public static final Suit SPADES =new Suit("spades");    

    private Suit(String name){
        this.name =name;
    }
    public String toString(){
        return name;
    }

}

هل لديك أي طرق أخرى مختلفة لهذه المشكلة؟

هل كانت مفيدة؟

المحلول

المشكلة مع MIDP هي أنها عالقة في مستوى لغة Java 1.2 (يقول البعض 1.3 أو 1.4 ولكن ليس هذا النقطة) وتم تقديم العادة في 1.5. النمط الخاص بك هو خطوة في الاتجاه الصحيح، ولكن تفتقر إلى بعض ميزات العادة "الحقيقية"، مثل تعيين عدد ترتيبي لكل ثابت.

قد تواجه مشكلات مماثلة مع Generics، التعليقات التوضيحية، وما إلى ذلك والتي تم تقديمها أيضا في 1.5. هناك أدوات لتحويل Java 1.5 مرة أخرى إلى 1.2، وبعضها مدرج هنا. وبعد من هذا القبيل، يجب أن تكون قادرا على التعليمات البرمجية في 1.5 وتشغيلها على MIDP. ملاحظة، ومع ذلك، فإن استخدام هذه الأدوات سيعقد عملية البناء الخاصة بك إلى حد كبير، في حين أن الحل الذي ذكرته لا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top