Кулинарные единицы в Java
Существуют ли библиотеки с открытым исходным кодом для представления кулинарных единиц, таких как чайная ложка и столовая ложка на Java?
Я только нашел JSR-275 (http://jscience.org/jsr-275/), который замечательный, но не знает о кулинарных единицах.
Ответы
Ответ 1
JScience является расширяемым, поэтому вы должны создать подкласс javax.measure.unit.SystemOfUnits. Вы создадите ряд публичных статических окончательных объявлений, например:
public final class Cooking extends SystemOfUnits {
private static HashSet<Unit<?>> UNITS = new HashSet<Unit<?>>();
private Cooking() {
}
public static Cooking getInstance() {
return INSTANCE;
}
private static final Cooking INSTANCE = new SI();
public static final BaseUnit<CookingVolume> TABLESPOON = si(new BaseUnit<CookingVolume>("Tbsp"));
...
public static final Unit<CookingVolume> GRAM = TABLESPOON.divide(1000);
}
public interface CookingVolume extends Quantity {
public final static Unit<CookingVolume> UNIT = Cooking.TABLESPOON;
}
Очень просто определить другие единицы и конверсии, пока вы знаете, что представляют собой коэффициенты преобразования.
Ответ 2
Я думаю, вы можете разглядеть страницу вики для приготовления мер: Кулинарные веса и меры
В нем есть все меры, организованные в таблицах, поэтому их довольно легко разобрать.
Ответ 3
Это может быть полезно: JUnitConv. Это Java-апплет для конвертирования единиц (включая кулинарные единицы), но он лицензирован GPL, поэтому вы можете загрузить источник и адаптировать соответствующие компоненты для вашего собственного использования.
С другой стороны, похоже, что не сложно создать класс CookingUnits
, совместимый с JSR 275. (Что бы я сделал)
Ответ 4
Боюсь, мы не можем помочь вам с JSR-275, поскольку он был отклонен, но JSR-363 только что вышел в финал в Сентябрь, поэтому, если у вас есть отличная идея для системных систем, таких как "Cooking Units", просто сообщите нам в разделе UoM-Systems.