هل يمكنني الإشارة إلى خاصية أخرى في ملف خصائص (استخدم ${property}) [مكررة]

StackOverflow https://stackoverflow.com/questions/1412132

سؤال

التكرار المحتمل:
كيفية الرجوع إلى خاصية أخرى في java.util.Properties؟

انظر إلى "file.properties":

key1= My name is
key2= ${key1} Martin !

Why when I get the value of "key2" my result is "${key1} Martin !" unlike "My name is Martin !"

=> أنا أبرمج بلغة Java 6
=> أستخدم java.util.Properties

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

المحلول

قد ترغب في إلقاء نظرة على تكوين أباتشي،

http://commons.Apache.org/configuration/

من بين العديد من الميزات التي يدعمها هو الاستيفاء المتغير.

نصائح أخرى

ما تريد القيام به مستحيل باستخدام Java Properties فصل.

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

ملفات النمل هي نصوص برمجية؛ملفات الخصائص عبارة عن مجموعات من السلاسل.

الغرض الأساسي من ملفات الخصائص هو العمل كحاويات سلسلة للنص القابل للترجمة.تستخدم سلاسل التنسيق المستخدمة عادةً في حزم الموارد نظامًا قائمًا على الفهرس.عندما تتم ترجمة السلسلة، يمكن تغيير ترتيب المعلمات في الإصدارات المترجمة من السلسلة دون الحاجة إلى تغيير كود Java.

String what = "Hello";
String who = "Martin";
System.out.println(MessageFormat.format("{0}, {1}!", what, who));
System.out.println(MessageFormat.format("{1}, {0}!", what, who));

انتاج:

Hello, Martin!
Martin, Hello!

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

لا ينبغي الخلط بين هذا النوع من التنسيق و آخر خيارات التنسيق كما هو محدد بواسطة المنسق:

System.out.format("%s, %s!%n", what, who);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top