Приготовление единиц в Java

Пришел к такому подходу (и он, вероятно, точно такой же, как использование интерактивной перебазировки), но для меня это довольно просто.

Примечание: я представляю этот подход для иллюстрации того, что вы можете сделать, а не для повседневной альтернативы. Так как в нем много шагов (и, возможно, несколько предостережений).

Скажем, вы хотите изменить коммит 0, и вы в настоящее время находитесь на feature-branch

some-commit---0---1---2---(feature-branch)HEAD

. а quick-branch. Вы также можете клонировать свою функциональную ветвь как точку восстановления (перед запуском).

?(git checkout -b feature-branch-backup)
git checkout 0
git checkout -b quick-branch

Теперь у вас будет что-то вроде этого:

0(quick-branch)HEAD---1---2---(feature-branch)

Смена сцены, спрятать все остальное.

git add ./example.txt
git stash

Передать изменения и оформить заказ обратно на feature-branch

git commit --amend
git checkout feature-branch

Теперь у вас будет что-то вроде этого:

some-commit---0---1---2---(feature-branch)HEAD
           \
             ---0'(quick-branch)

Перебазировать feature-branch на quick-branch ( разрешать любые конфликты по пути). Примените тайник и удалите quick-branch.

git rebase quick-branch
git stash pop
git branch -D quick-branch

И вы получите:

some-commit---0'---1'---2'---HEAD(feature-branch)

Git не будет дублировать (хотя я не могу точно сказать, в какой степени) коммит 0 при ребазинге.

Примечание: все хеши коммитов меняются, начиная с коммита, который мы изначально намеревались изменить.

21
задан mkobit 8 March 2018 в 16:27
поделиться

3 ответа

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;
}

Довольно просто определить другие единицы и преобразования, если вы знаете, каковы коэффициенты преобразования.

13
ответ дан 29 November 2019 в 22:02
поделиться

Думаю, вы можете проанализировать вики-страницу на предмет измерений кулинарии: Кулинарные веса и меры

Все меры организованы в таблицах, поэтому их будет довольно легко проанализировать выход.

1
ответ дан 29 November 2019 в 22:02
поделиться

Это может быть полезно: JUnitConv . Это Java-апплет для преобразования единиц (включая кухонные), но он под лицензией GPL, поэтому вы можете скачать исходный код и адаптировать соответствующие части для собственного использования.

С другой стороны, похоже, что этого не должно быть. трудно создать класс CookingUnits , совместимый с JSR 275. (Это то, что я бы сделал)

1
ответ дан 29 November 2019 в 22:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: