从jfreechart数据集获取值时,为什么会出现错误?

时间:2014-05-25 20:25:39

标签: java jfreechart

我有一种方法可以更新像这样的DialChart ......

public void updateDatasetSPLmaxSample(double newValue) {
    double currentValue = (double)(datasetSPLmaxSample.getValue()); //ERROR THIS LINE
    if (newValue > currentValue) {
        this.datasetSPLmaxSample.setValue((int)currentValue);
    }
}

但是,出于某种原因,我收到以下错误:

线程中的异常"线程9" java.lang.ClassCastException:java.lang.Integer无法强制转换为java.lang.Double

datasetSPLmaxSample.getValue()会返回一个java Number,所以将它投射到双倍像我所知的那样,据我所知,这是一个问题,但事实确实如此。为什么呢?

1 个答案:

答案 0 :(得分:2)

java.lang.Numberjava.lang.Integerjava.lang.Double的抽象超类,但此类兄弟类之间的转换是not permitted。由于您的数据集包含Number的实例,因此您可以使用doubleValue()方法。

double currentValue = datasetSPLmaxSample.getValue().doubleValue();