【问题标题】:Cooking Units in JavaJava 中的烹饪单元
【发布时间】:2010-11-04 09:05:22
【问题描述】:

是否有任何开源库用于表示 Java 中的茶匙和汤匙等烹饪单位?

我只找到了很棒的 JSR-275 (https://jcp.org/en/jsr/detail?id=275),但不了解烹饪设备。

【问题讨论】:

  • 我喜欢这个...值得拥有自己的标签
  • “捏”怎么样?比如“一小撮盐”?
  • 一个“smidgen”有多少个“捏”?
  • 你自己写一个?
  • 来自维基百科:Dash 是 0.62 毫升,捏是 0.31 毫升,但我猜 smidgen 不是标准测量值。

标签: java units-of-measurement


【解决方案1】:

恐怕,JSR-275 已被拒绝,我们无法为您提供帮助,但 JSR-363 刚刚在 9 月进入决赛,所以如果您对“烹饪单位”等单位系统有很好的想法,请请在UoM-Systems 下告诉我们。

【讨论】:

  • 看起来 JSR-365 也刚刚被接受。是否已经计划包括在内?
  • 385 是 JSR 363 的下一个版本。这些领域特定单元的最佳位置是 github.com/unitsofmeasurement/uom-domain。请随时创建票证作为新功能请求。
【解决方案2】:

这可能有一些用处:JUnitConv。这是一个用于转换单位(包括烹饪单位)的 Java 小程序,但它是 GPL 许可的,因此您可以下载源代码并调整相关部分以供自己使用。

另一方面,创建一个符合 JSR 275 的 CookingUnits 类似乎不难。(这就是我要做的)

【讨论】:

    【解决方案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;
    }
    

    定义其他单位和换算非常简单,只要您知道换算系数是多少。

    【讨论】:

      【解决方案4】:

      我猜你可以解析 wiki 页面来进行烹饪测量:Cooking Weights and Measures

      它把所有的度量都组织成表格,所以应该很容易解析出来。

      【讨论】:

      猜你喜欢
      • 2011-07-03
      • 1970-01-01
      • 2021-01-22
      • 2011-09-24
      • 2011-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多