Java - JScience определить новый модуль - PullRequest
4 голосов
/ 24 октября 2010

Я хочу определить новую единицу расстояния в JScience .Раздел «Учебное пособие» на веб-сайте проекта ведет только к Javadoc, который, хотя и является довольно полным, слишком сложен для меня, чтобы понять, как я на самом деле иду к определению своего собственного подразделения.

Не могли бы вы привести пример?

Приветствия.

Пит

Ответы [ 3 ]

3 голосов
/ 04 декабря 2014

Я знаю, что это старая запись, но .. я все равно собираюсь опубликовать ответ, может быть, он будет кому-то полезен

Чтобы определить пользовательскую единицу в 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;
   }
}
1 голос
/ 24 октября 2010

возможно этот другой SO вопрос о единицах в Java может помочь.

0 голосов
/ 21 июля 2015

Посмотрите, как JSR 363 RI делает это (преемник 275, который был реализован JScience 4) https://github.com/unitsofmeasurement/unit-ri/blob/master/src/main/java/tec/units/ri/format/SimpleUnitFormat.java

Вариант по умолчанию SimpleUnitFormat поддерживает UTF-8, в то время как ASCII предназначен для ограниченных сред или устройств, которые могут не иметь GUI или ограниченных наборов символов:

DEFAULT.label(MetricPrefix.MICRO(Units.LITRE), "µl"); ASCII.label(MetricPrefix.MICRO(Units.LITRE), "microL");

Обратите внимание, что метод label () будет представлен в API JSR 363 в следующей версии-кандидате на публичный черновик. В настоящее время это часть RI (https://github.com/unitsofmeasurement/unit-ri, не JScience, хотя в конечном итоге он может перейти на новый стандарт, также в V5)

...