2015-12-01 4 views
6

maven(tec.units:unit-ri)のJSR 363: Units of Measurement APIという参照実装を使用しています。JSR 363新しいユニットを追加する

今、私はティースプーン、液体オンスなどのようにいくつかのユニットを追加する必要があります。

イムは、このように新しいユニットを追加するために、ユニットのクラスを拡張する:

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

これは、変換が、「TSP」はパースされていないために動作しているようですので、私はパーサーにそれを追加するにはどうすればよいですか?

とIMは、トラブルたとえば華氏を追加した: - 459.67

どのように私はコンバータでこれを行うことができ、または私はUnitConverterを延長しなければならないの T(F°)= T(K)9/5×自分自身を作成する?

答えて

0

独自の単位を定義することができますが、小さじまたは液量オンスのような一般的な単位は、RIベースのライブラリーのためのhttps://github.com/unitsofmeasurement/uom-systems/tree/master/common

https://github.com/unitsofmeasurement/uom-systemsようJSR 363用の拡張モジュールでは、すでに用意されています。華氏もそこにいる。

これらすべてのシステムまたは「フルSI」システムは、JCenterパブリックリポジトリにあります。すぐにMavenCentralと同期する予定ですが、リポジトリ定義をMaven(またはGradleなど)ビルドファイルに追加すると、JCenterと同じ方法で使用できます。

+0

私はカスタムユニットPARSECを定義することでこの演習を試みました(私はすでにそれがあると思います)。私はそれをParsec(PC)として印刷するのに苦労しています。私はいつもメートルとして印刷されます。どのようにこれを達成し、メートル、キロメートルなどに変換することができますか? –

+0

次のアップデートでは、PARSECも[SimpleUnitformat]を使用してRIとJava SE8 +の両方で[Unicode CLDR] [1]に存在します。 [1]:https://github.com/unitsofmeasurement/uom-systems/tree/master/unicode –

0

ありがとうございます。 SimpleUnitFormatを使用している場合(現在はLocaleをそのまま残しておきます)、適切な場所にlabel()式がない可能性があります。

可能であれば、GitHubアカウントをお持ちですか?https://github.com/unitsofmeasurement/uom-systems/issuesに登録してください。できるだけ早く問題を解決してください。または、PRを提出する。

+0

これまでのところ、PARSECは少なくともUCUMユニットシステムに存在しています。これは、専用のUnitFormat実装の専門性を持ち、 [UCUMDemoSE](https://github.com/unitsofmeasurement/uom-demos/blob/master/console/systems/ucum/src/main/java/tec/uom/demo/systems/ucum/UCUMDemoSE.java)を参照してください。それらのいずれかでtoString()を呼び出すと、 'SimpleUnitformat'を介して実装に戻ります。現在、すべてのUCUM文字列を認識していません。それはラベルを介して行うことができますが、多少の冗長性や「リフレクション」マジックを引き起こした可能性があります。 –

関連する問題