2015-12-01 9 views
6

मैवेन (tec.units: unit-ri) से JSR 363: Units of Measurement API के संदर्भ कार्यान्वयन का उपयोग कर रहा हूं।जेएसआर 363 नई इकाइयों को जोड़ना

अब मुझे चम्मच, तरल औंस और कुछ जैसी इकाइयों को जोड़ना होगा।

इम इस तरह की एक नई इकाई को जोड़ने के लिए इकाइयों वर्ग का विस्तार:

public static final Unit<Volume> TEASPOON = addUnit(new TransformedUnit<Volume>("tsp", CUBIC_METRE, new MultiplyConverter(0.000005))); 

यह परिवर्तित लेकिन "चम्मच" पार्स करने नहीं है के लिए काम करने लगता है, इसलिए मैं इसे कैसे पार्सर के लिए जोड़ सकता हूँ?

और इम मुसीबत उदाहरण के लिए फारेनहाइट शामिल करने में समस्या: टी (° F) = टी (के) × 9/5 - 459,67

मैं कन्वर्टर्स के साथ यह कैसे कर सकते हैं, या मैं UnitConverter का विस्तार करने की क्या ज़रूरत है और अपना खुद का बनाओ?

उत्तर

0

हालांकि आप चम्मच या द्रव औंस की तरह अपने स्वयं के इकाई, आम इकाइयों को परिभाषित कर सकते पहले से ही की तरह https://github.com/unitsofmeasurement/uom-systems

आरआई आधारित पुस्तकालय के लिए https://github.com/unitsofmeasurement/uom-systems/tree/master/common JSR 363 के लिए विस्तार मॉड्यूल में उपलब्ध हैं। फारेनहाइट भी वहां है।

ये सभी सिस्टम या "पूर्ण एसआई" सिस्टम जेसीएनटर सार्वजनिक रिपो पर उपलब्ध हैं। हम जल्द ही इसे MavenCentral में सिंक करने की योजना बना रहे हैं, लेकिन यदि आप अपनी मैवेन (या ग्रैडल इत्यादि) फ़ाइलों को बनाने के लिए अपनी रिपोजिटरी परिभाषा जोड़ते हैं तो आप इसे जेसीएन्टर से उसी तरह उपयोग कर सकते हैं।

+0

मैंने कस्टम यूनिट PARSEC को परिभाषित करके भी इस अभ्यास की कोशिश की है (मुझे पता है कि यह पहले से ही है)। मैं इसे पारसी (पीसी) के रूप में मुद्रित करने के लिए संघर्ष कर रहा हूं। मैं हमेशा इसे मीटर के रूप में मुद्रित करता हूं। किसी भी मदद से इसे कैसे प्राप्त किया जा सकता है और इसे मीटर, किलोमीटर और इतने पर परिवर्तनीय किया जा सकता है? –

+0

अगले अपडेट के साथ, PARSEC भी [यूनिकोड सीएलडीआर] [1] में होगा, वहां 'SimpleUnitformat' का उपयोग करके आरआई और जावा एसई 8 + दोनों पर होगा। [1]: https://github.com/unitsofmeasurement/uom-systems/tree/master/unicode –

0

उल्लेख करने के लिए धन्यवाद। यदि आप SimpleUnitFormat (अब लोकेल को छोड़कर छोड़ रहे हैं) का उपयोग कर रहे हैं तो आप सही जगहों पर एक लेबल() अभिव्यक्ति खो सकते हैं।

क्या आपके पास गिटहब खाता है, तो कृपया इसे https://github.com/unitsofmeasurement/uom-systems/issues के तहत फ़ाइल करें यदि आप कर सकते हैं और हम जितनी जल्दी हो सके इस मुद्दे को संबोधित करेंगे। या एक पीआर फाइल करें।

+0

अब तक PARSEC कम से कम यूसीयूएम इकाई प्रणाली में मौजूद है, जिसमें समर्पित 'यूनिटफॉर्मैट' कार्यान्वयन की विशेषता है, [UCUMDemoSE] देखें (https://github.com/unitsofmeasurement/uom-demos/blob/master/console/systems/ucum/src/main/java/tec/uom/demo/systems/ucum/UCUMDemoSE.java)। उनमें से एक पर toString() को कॉल करना 'SimpleUnitformat' के माध्यम से कार्यान्वयन पर वापस आता है। जो वर्तमान में सभी यूसीयूएम तारों से अवगत नहीं है। यह लेबल के माध्यम से किया जा सकता है, लेकिन शायद कुछ अनावश्यकता या "प्रतिबिंब" जादू का कारण बनता है। –

संबंधित मुद्दे