我正在寻找一种更好的使用 Jscience 进行计算的方法,但通用模式要获得明确的解决方案要困难得多。如果定义了单位数量的单位价格,我需要计算 n 个单位的价格。喜欢,
Measure<Double, ? extends Quantity> unitQuantity = Measure.valueOf(1.0,
Unit.valueOf("kg"));
Amount<Money> unitPrice = Amount.valueOf(150.0, USD);
Measure<Double, ? extends Quantity> quantity = Measure.valueOf(500.0,
MILLI(Unit.valueOf("kg")));
Amount<Money> amount = unitPrice.times(quantity.to(unitQuantity.getUnit())
.getValue() / unitQuantity.getValue());
对于上面的代码,我收到此错误:
The method to(Unit<capture#7-of ? extends Quantity>) in the type
Measure<Double,capture#7-of ? extends Quantity> is not applicable for
the arguments (Unit<capture#8-of ? extends Quantity>)
我在Java 教程中阅读了泛型并尝试了以下方法,但仍然没有明确的解决方案:
Amount<Money> amount = compute(unitPrice,unitQuantity,quantity)
private <T extends Quantity> Amount<Money> compute(Amount<Money> unitPrice,
Measure<Double, T> unitQuantity, Measure<Double, T> quantity) {
return unitPrice.times(quantity.to(unitQuantity.getUnit()).getValue()
/ unitQuantity.getValue());
}
现在收到此错误:
The method compute(Amount<Money>, Measure<Double,T>, Measure<Double,T>)
in the type JscienceEx is not applicable for the arguments (Amount<Money>,
Measure<Double,capture#7-of ? extends Quantity>, Measure<Double,capture#8-of ?
extends Quantity>)