1

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

2 に答える 2