2016-01-06 81 views
1

我使用javax.measure编写了一些代码,并且当我从我们的存储库中提取更新的代码时,每当我尝试使用javax.measure中的<Length>时,都会遇到绑定不匹配错误。奇怪的Javax.measure.quantity.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(); 
    } 
} 
+0

请编辑的问题,包括你已经看到确切的错误。 –

回答

1

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

  • VgetValue()返回的结果的类型。

  • QQuantityUnitgetUnit()返回。

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

Measure<Double, Length> unitValue; 
+0

感谢您的回复。我刚拉了整个整个项目下来,从仓库到一个干净的目录,它解决了这一问题,我仍然不知道是什么导致它。 – pianoisland

+0

听起来像一个版本控制问题;真高兴你做到了。 – trashgod