奇怪的Javax.measure.quantity.Length Bound Mismatch

时间:2016-01-06 18:24:50

标签: java eclipse jscience

我使用javax.measure编写了一些代码,当我从存储库中提取更新的代码时,每当我尝试使用javax.measure中的<Length>时,我都会遇到绑定不匹配错误。

编辑确切的错误是:

  

绑定不匹配:类型长度不​​是有效的替代   类型<Q extends Quantity>

的有界参数BaseUnit<Q>

我将代码移动到一个干净的工作区,一切都很好,但由于某种原因,在我的主工作区中,它无法正常工作。

为什么会出现这种情况?我正在使用eclipse,有问题的代码在下面

import javax.measure.Measure;
import javax.measure.quantity.Length;
import javax.measure.unit.BaseUnit;

public class MyUnit{
    BaseUnit<Length> unitType;
    Measure<Length> unitValue;

    public MyUnit(double value, String abbreviation) {
        this.unitType = new BaseUnit<Length>(abbreviation);
        this.unitValue = Measure.valueOf(value, unitType);
    }

    public double getValue() {
        return (double)this.unitValue.getValue();
    }

    public String getUnit() {
        return this.unitType.getSymbol();
    }
}

1 个答案:

答案 0 :(得分:1)

Measure<V,Q extends Quantity>需要两个类型参数:

  • V getValue()返回的结果类型。

  • Q Quantity返回Unit的{​​{1}}。

由于getUnit()构造函数指定MyUnit,声明应该是,例如,

double