2016-01-06 5 views
1

Я написал код с помощью javax.measure, и когда я вытащил обновленный код из нашего репозитория, я получаю ошибку Bound Mismatch, когда я пытаюсь использовать <Length> из javax.measure.Strange Javax.measure.quantity.Length Bound Mismatch

Редактировать Точные ошибки:

Bound Несоответствия: Длина Типа не является допустимым заменителем для ограниченного параметра <Q extends Quantity> типа BaseUnit<Q>

Я переместил код чистого рабочее пространство и все было в порядке, но по какой-то причине в моей основной рабочей области он не работает.

Любые идеи, почему это так? Я использую затмение и код в вопросе ниже

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> требует два параметров типа:

  • V типа результата, возвращаемого getValue().

  • QQuantity из Unit возвращенного getUnit().

Как MyUnit конструктор указывает double, декларация должна быть, например,

Measure<Double, Length> unitValue; 
+0

Спасибо за ответ. Я просто вытащил весь проект из репозитория в чистый каталог, и он исправил проблему, но я до сих пор не знаю, что вызывало его. – pianoisland

+0

Звучит как проблема контроля версий; рад, что вы его работали. – trashgod