Приготовление блюд на Java
Существуют ли какие-либо библиотеки с открытым исходным кодом для представления кулинарных единиц, таких как чайная ложка и столовая ложка в Java?
Я нашел только JSR-275 ( https://jcp.org/en/jsr/detail?id=275), который великолепен, но не знает о кулинарных единицах.
4 ответа
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;
}
Определить другие единицы и преобразования довольно просто, если вы знаете, каковы коэффициенты преобразования.
Это может быть полезно: JUnitConv. Это Java-апплет для преобразования единиц (включая единицы приготовления), но он имеет лицензию GPL, поэтому вы можете загрузить исходный код и адаптировать соответствующие части для своего собственного использования.
С другой стороны, похоже, что это не должно быть трудно создать CookingUnits
класс соответствует JSR 275. (Это то, что я бы сделал)
Боюсь, мы не можем помочь вам с JSR-275, так как он был отклонен, но JSR-363 только что вышел в финал в сентябре, поэтому, если у вас есть отличная идея для таких систем единиц, как "Cooking Units", пожалуйста, просто дайте нам знать под UoM-Systems.
Я полагаю, что вы можете проанализировать вики-страницу для измерения параметров приготовления: веса и меры приготовления
В нем все меры организованы в виде таблиц, поэтому их довольно легко разобрать.