سؤال

لدي بدلا من عدد كبير من ملفات المصدر التي لا تحتاج إلى تحليل واستخراج جميع سلسلة حرفية ووضعها في ملف اللعب القديمة جافا المستمر.
على سبيل المثال:

Label l = new Label("Cat");

سوف تصبح:

Label l = new Label(Constants.CAT);

و في Constants.java كنت أود أن يكون:

public final static String CAT = "Cat";

أنا لا أريد السلاسل إلى تخريجها في خاصية نص الملف.
سبب واحد هو الاتساق و مقروئية.
والآخر هو أن العميل يستخدم رمز GWT, التي لا تدعم جافا الملكية ملف نصي آلية.

يمكنني أن أكتب نوع من محلل (باستخدام النمل استبدال مهمة ربما) ؟
ولكن كنت أتساءل إذا كان IDE بالفعل هذا النوع من الشيء تلقائيا.

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

المحلول

لاستكمال بيتر كيلي الإجابة ، قد تنظر eclipse IDE على AST الحل.

قد ثم كتابة AST برنامج تحليل شفرة المصدر الخاصة بك و يفعل ما تريد.

على سبيل المثال الكامل هو متاح في هذا الكسوف الزاوية المادة, أيضا المزيد من التفاصيل في الكسوف مساعدة.
و يمكنك أن تجد بعض الأمثلة في القائمة 5 من القسم "تنفيذ في مكان الترجمة" من أتمتة التضمين المجال لغات معينة في الكسوف JDT, إلى جانب أمثلة متعددة في جيثب المشاريع.

نصائح أخرى

الكسوف لا تفعل ذلك تلقائيا.انقر بزر الماوس الأيمن فوق ملف ، اختر "مصدر" ، ثم "تخريج السلاسل"

هذا لا تفعل بالضبط ما طلبت (وجود السلاسل في Constants.java ملف Strings) ولكن الطريقة المستخدمة هي قوية جدا في الواقع.وهو يتحرك لهم في خصائص الملفات التي يمكن تحميلها بشكل حيوي اعتمادا على الإعدادات المحلية الخاصة بك.وجود لهم في فصل جافا الملف المصدر كما تقترح يعني إما أن يكون جميع اللغات في التطبيق الخاص بك مرة واحدة أو سوف السفينة تطبيقات مختلفة اعتمادا على الإعدادات المحلية.

نستخدمها في التطبيقات حيث حتى الأشياء الأساسية أن السفينة في اللغة الإنجليزية و اليابانية - لدينا أكثر تعقيدا التطبيقات السفينة مع 12 لغة - نحن لا صغير شركة تطوير البرمجيات بأي وسيلة :-).

إذا كنت هل أريد لهم في الملف Java, على الرغم من أوجه القصور سبق ذكره ، أنه من الأسهل كثيرا أن أكتب برنامج morph خصائص ملف إلى ملف جافا الملف المصدر من ذلك هو محاولة استخراج الأوتار من شكل حر المصدر Java.

كل ما تحتاج إلى القيام به هو تعديل أسلوب استرجاع قيمة الدرجة استخدام المدمج في السلاسل (في فئة منفصلة) بدلا من تحميلها في وقت التشغيل.

هناك بعض الأسباب الوجيهة لماذا لا تريد أن تفعل هذا.وبصرف النظر عن حقيقة أن أي من هذه الملفات التي تم إنشاؤها (لم أكن أعرف عن الكسوف وظيفة)لن تميز بين السلاسل التي كنت الإعداد ، على سبيل المثال ، كما منشئ وسائط في اختبار دروس و أشياء كنت فعلا تريد أن يكون بمثابة ثوابت القضية الأكبر هي أن جميع من الجمهور ثابت نهائيات كأس العالم ستكون تجميعها في فئات الخاصة بك ، إذا كنت ترغب في تغيير فصول السلوك سوف تحتاج إلى تغيير ليس فقط في عقد الثوابت ولكن كل شيء يشير ذلك.

وأنا أقر تماما ما باكس ديابلو قال.نحن نستخدم هذه الدالة أيضا.

عندما يطبق على فئة ملف وظيفة "تخريج السلاسل" سيتم إنشاء ملفين ، فئة Messages.class و خصائص الملف الرسائل.خصائص.ثم فإنه سيتم إعادة توجيه كل المباشر الأعراف من سلسلة حرفية نداء إلى الرسائل.الحصول على(سلسلة مفتاح) باستخدام مفتاح دخلت على السلسلة في "Ext.سلسلة" معالج.

راجع للشغل:ما السيء الملكية الملفات ؟ كما قال, يمكنك فقط تغيير خصائص الملف و لا تضطر إلى تغيير فئة إذا كنت بحاجة إلى تغيير النص.

ميزة أخرى هي هذه:طريقة استخراج سلسلة حرفية إلى خاصية الملف يترك لك الحرية في ترجمة اللغة المصدر في أي لغة تريد دون تعديل أي قانون.خصائص الملف محمل الأحمال اللغة الهدف الملف تلقائيا باستخدام ملف المناظرة مع اللغة رمز iso.لذلك كنت لا داعي للقلق حول منصة تشغيل التعليمات البرمجية الخاصة بك على اختيار اللغة المناسبة (تقريبا) تلقائيا.راجع وثائق من الدرجة ResourceBundle كيف يعمل هذا بالتفصيل.

قد ترغب في التحقق الفوز بالجائزة الكبرى مصدر التحول المحرك في NetBeans التي من شأنها أن تسمح لك البرنامج النصي الخاص بك المصدر التحولات.

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