Java - JScience 定义一个新单元

4 java units-of-measurement jscience

我想在JScience 中定义一个新的距离单位。项目网站的“教程”部分只是指向 Javadoc,它虽然相当完整,但对我来说有点过于密集,无法理解我实际上是如何定义自己的单元的。

你能举个例子吗?

干杯。

皮特

Pie*_*tti 5

我知道这是一个旧帖子,但是..无论如何我都会发布答案,也许它对某人有用

为了在 JScience 中定义自定义单元,您必须扩展该类SystemOfUnits并在此处定义所有自定义单元。

检查下面的示例(我正在定义 ACRE 的单位)

public class MyUnits extends SystemOfUnits 
{
   private static HashSet<Unit<?>> UNITS = new HashSet();

   private static final MyUnits INSTANCE = new MyUnits();

   public static final Unit<Area> ACRE = myUnits((SI.METER.pow(2)).times(4046.8564224).asType(Area.class));

   public static MyUnits getInstance()
   {
      return INSTANCE;
   }    

   @Override
   public Set<Unit<?>> getUnits()
   {
      return Collections.unmodifiableSet(UNITS);
   }

   private static <U extends Unit<?>> U myUnits(U unit)
   {
      UNITS.add(unit);
      return unit;
   }
}
Run Code Online (Sandbox Code Playgroud)