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>)