はじめに プログラムにおいて、長さ、質量、時間、電流、温度などのさまざまな物理量(測定量)を扱うことがあります。これらの物理量をプログラム中で取り扱う際は、整数や浮動小数点数の型の変数、Javaであればint, long, doubleといった型の変数を使うことが多いでしよう。 たとえば、東京からサンフランシスコまで飛行機で移動するのにかかる時間を計算するコードは次のようになります。 このコードには、敢えて単位の扱いにバグ1を含んでいます。バグがありますが、プログラムをコンパイルしてもエラーにはならず、実行することができ、パッと見には、それらしく計算して結果を出してしまいます。 Javaにおいて、このような物理量を取り扱う際に単位が異なる場合、エラーとして検出できる専門のAPIがないか探してみたところ、Javaの標準化活動を行っているJCPにおいて、JSR 363 Units of Mea