似乎
JScience您已尝试将a转换
Unit<Mass>为a
Unit<Energy>,这在默认情况下是禁止的
PhysicalModel。
一种替代方法是为
Quantity以下各个单元创建一个新的
FoodEnergy:
public static final Unit<Energy> KILOCALORIE = SI.JOULE.times(4184);public interface FoodEnergy extends Quantity { public final static Unit<FoodEnergy> UNIT = (Unit<FoodEnergy>) SI.GRAM.times(KILOCALORIE);}private static final Unit<FoodEnergy> PROTEIN_ENERGY = FoodEnergy.UNIT.times(4);private static final Unit<FoodEnergy> ETHANOL_ENERGY = FoodEnergy.UNIT.times(7);…然后,您可以合并特定能源的贡献:
Amount<FoodEnergy> beer = Amount.valueOf(2, PROTEIN_ENERGY).plus( Amount.valueOf(14, ETHANOL_ENERGY));System.out.println(beer.to(FoodEnergy.UNIT).getEstimatedValue() + " Calories");
哪个打印
105.99999999999997Calories。您可以通过将a转换为
NonSI.POUND来找到一磅蛋白质中的卡路里
SI.GRAM:
double grams = NonSI.POUND.getConverterTo(SI.GRAM).convert(1);Amount<FoodEnergy> pound = Amount.valueOf(grams, PROTEIN_ENERGY);System.out.println(pound.to(FoodEnergy.UNIT).getEstimatedValue() + " Calories");
哪个打印
1814.3694799999998 Calories。最后,您可以从中恢复焦耳数
FoodEnergy.UNIT:
System.out.println(FoodEnergy.UNIT.divide(SI.GRAM));
哪些印刷品
J*4184,或
System.out.println(FoodEnergy.UNIT.divide(SI.GRAM).toStandardUnit().convert(1));
哪个打印
4184.0。



