Я ищу лучший способ вычислений с использованием 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>)